我刚刚开始一份新工作,正在学习 sas,并且有一个关于 <> 运算符的问题。根据我的阅读,这并不等于“不等于”,而是一种 MAX 函数。
然而,在我的新地方的一个程序中,他们将其用作两个文本值之间的不等于,例如 'current'<> 'current',包含在 IF 中。它是否正确?它的文字有什么不同吗?
作为 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16329 次 |
| 最近记录: |