我有一个宏变量,如下所示有超过1个观察值。
%let age = 12,34,56;
%put &age;
现在我想在proc sql中的 where 参数中使用age。
proc sql;
select *
from family
where age in ("&age");
quit;
我使用了%bquote,%quote,%str()以及更多但尚未成功。
答案 0 :(得分:3)
在没有任何引号的情况下尝试(我假设年龄是一个数字变量)。
如果age是一个字符,那么你可以像这样重写WHERE语句;
where input(age, 8.) in (&age)
写作时
"&age"
SAS创建包含所有值和逗号的单个字符串,这不是我们对IN运算符所需的。
加。 这是我的代码:
%let age = 12,34,56;
%put &age;
data family;
input age @@;
datalines;
15 16 17 12 33 34 55 56
;
run;
proc sql;
select *
from family
where age in (&age);
quit;