我在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调用之前先执行数据步骤更好的解决方法?
答案 0 :(得分:1)
双??
用于禁止在数据步骤中设置_ERROR_
。因此,它在WHERE子句中没有任何意义,尤其是在PROC而不是DATA步骤中使用的子句。
只需使用一个?
。
?要么 ??
指定可选问号(?)和双问 标记(??)修饰符,可同时显示两个错误 消息和读取无效数据值时的输入行。 ? 修饰符可禁止显示无效数据消息。 ??修饰符也 禁止显示无效的数据消息,并防止 无效数据时将自动变量_ERROR_设置为1 阅读。