我有一个if语句,用于检查全局变量是否为yes / no
全局变量是前一个宏的输出
为什么当我在'Y'或'N'周围使用引号时却不起作用-我从未在任何其他编程语言中看到过。我一直不得不对字符变量使用引号
即这不起作用
%if &errorflag='Y' %then %do;
但这有效:
%if &errorflag=Y %then %do;
宏不过是文本替换引擎。因此,其中包含的值为&errorflag
isY
和not 'Y'
。显然Y ^= 'Y'
。
这会工作
%if "&errorflag" = "Y" %then %do;
它&errorflag
用引号将值引起来。
%if "%upcase(&errorflag)" = "Y" %then %do;
可能是比较安全的比较。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句