输入功能不接受在where =数据集选项中使用时的修饰符

时间:2018-08-23 10:40:38

标签: sas

我在proc打印中有以下声明:

    where ZBTESTCD = 'NEOPSTYP' and missing(input(zbdtc,??e8601dt.)); 

当我运行SAS时,它发出一个错误:

ERROR: Syntax error while parsing WHERE clause.
ERROR 22-322: Expecting a format name.  
ERROR 200-322: The symbol is not recognized and will be ignored.

当在数据步骤的missing(input(zbdtc,??e8601dt.))中使用此条件if时,效果很好。

这是记录的行为吗?比在proc调用之前先执行数据步骤更好的解决方法?

1 个答案:

答案 0 :(得分:1)

??用于禁止在数据步骤中设置_ERROR_。因此,它在WHERE子句中没有任何意义,尤其是在PROC而不是DATA步骤中使用的子句。

只需使用一个?

  

?要么 ??

     

指定可选问号(?)和双问   标记(??)修饰符,可同时显示两个错误   消息和读取无效数据值时的输入行。 ?   修饰符可禁止显示无效数据消息。 ??修饰符也   禁止显示无效的数据消息,并防止   无效数据时将自动变量_ERROR_设置为1   阅读。