Not equals运算符在SAS proc sql中未按预期工作
我希望proc sql返回0条记录,因为比较的值相同,但它不返回0条记录。我错过了什么Not equals运算符在SAS proc sql中未按预期工作,sas,Sas,我希望proc sql返回0条记录,因为比较的值相同,但它不返回0条记录。我错过了什么 DATA TEST; B='0'; A = put(0,2.); RUN; PROC SQL; SELECT * FROM TEST WHERE A NE B; QUIT; SQL正在按您的要求执行。您要求它将'0'与'0'进行比较,结果发现它们不同。这是因为前导空白。如果您要求SAS将'0'与'0'进行比较,就会发现它们是匹配的,因为SAS是如何处理尾随空格的。尝试A=left(放置(0,2.)或A=p
DATA TEST;
B='0';
A = put(0,2.);
RUN;
PROC SQL;
SELECT * FROM TEST WHERE A NE B;
QUIT;
SQL正在按您的要求执行。您要求它将
'0'
与'0'
进行比较,结果发现它们不同。这是因为前导空白。如果您要求SAS将'0'
与'0'
进行比较,就会发现它们是匹配的,因为SAS是如何处理尾随空格的。尝试A=left(放置(0,2.)代码>或A=put(0,2.-L)改为code>。它应该返回一条记录,因为'0'
不等于'0'
。