使用<>运算符与文本

时间:2018-05-08 13:04:21

标签: sas

我刚刚开始了一项新工作,我正在学习sas,并对<>提出了疑问。运营商。从我的阅读来看,这并不等于“不等于”,而是一种MAX函数。

然而,在我新地方的一个程序中,他们使用它作为不等于两个文本值之间的程序,例如'当前' <> “当前”,包含在IF中。它是否正确?它的文字是否有所不同?

1 个答案:

答案 0 :(得分:4)

作为SQL语法支持的一部分,SAS必须调整以允许<>在SQL代码中表示不相等。当他们在几乎所有情况下扩展WHERE语句时,他们使用了他们用于SQL实现的库。所以在PROC中SQL代码和WHERE语句<>意味着不相等。但在数据步骤代码中它仍然意味着MAX。

因此,如果在<>语句中使用IF,则请求MAX运算符而不是NOT EQUALS运算符。

57   data _null_;
58     str='Hi';
59     if str <> 'Hi' then put 'TRUE'; else put 'FALSE';
NOTE: The "<>" operator is interpreted as "MAX".
60   run;

NOTE: Character values have been converted to numeric values at the places given by:
      (Line):(Column).
      59:10
NOTE: Invalid numeric data, 'Hi' , at line 59 column 10.
FALSE
str=Hi _ERROR_=1 _N_=1