Do you use >< for NOT EQUAL to in SAS for text?
The SQL syntax, when used within the SAS environment, occupies a distinct place. Its capabilities are substantial; however, its syntax can be confusing due to its intricacies., especially regarding the use of operators like <> and ><, which can cause ambiguity.
Where Things Get Tricky
DATA Step: In traditional DATA step code, the symbols
><
represent the MIN operator. This means it returns the lower of two values in a comparison. Using it for "not equal to" would lead to incorrect results.WHERE Statements and PROC SQL: SAS introduced support for SQL syntax. In WHERE statements and PROC SQL procedures, the operator
<>
does function as the "not equal to" comparison.
<> is a max operator, and >< is a min operator. Unless you use a WHERE clause, then <> means "not equal"...
The MIN (><) operator returns the lower of the two values. The MAX (<>) operator returns the higher of the two values.
For example, if A<B
, A><B
returns the A's value.
Best Practices for Clarity and Consistency
To avoid confusion and make your code more readable, here's what seasoned SAS programmers recommend:
Use Explicit Operators: Use the operators specifically intended for "not equal to":
NE (traditional SAS operator)
^= (another common option)
MIN and MAX: Restrict the use of >< and <> to their intended purposes of finding the minimum and maximum values respectively.
In Summary
While you might technically get away with using >< for "not equal to" in some parts of SAS, it's not recommended. Stick to NE and ^= for clarity, accuracy, and to follow SAS best practices.
Subscribe to my newsletter
Read articles from Subhro Kr directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Subhro Kr
Subhro Kr
I am a developer from India