我希望proc sql返回0条记录,因为比较的值是相同的,但它不会返回0条记录。我错过了什么?
DATA TEST;
B='0';
A = put(0,2.);
RUN;
PROC SQL;
SELECT * FROM TEST WHERE A NE B;
QUIT;
答案 0 :(得分:3)
SQL正在按照您的要求进行操作。您要求它将'0'
与' 0'
进行比较,结果发现它们不同。这是因为领先的空白。如果您曾要求SAS将'0'
与'0 '
进行比较,那么由于SAS如何处理尾随空白,它们会发现它们匹配。请改为A = left(put(0,2.));
或A = put(0,2.-L);
。