如何将宏变量作为SAS SQL传递中的字符读取
我的目标是将“one”作为var3中的唯一值,但现在我得到了
“未知的第一栏”
%macro test(notvar=)
proc sql;
connect to odbc as conn (datasrc=x user=&user1. password=&pwd1.);
create table ¬var. (compress=no) as select * from connection to conn
(
select var1, var2,
¬var. as var3
from table1
);
disconnect from conn;
quit;
%mend test;
%test(notvar=one);
答案 0 :(得分:2)
虽然没有测试过。我认为你可以把宏变量作为列的值,如:
select var1, var2,
"¬var" as var3
from table1
或
select var1, var2,
symget('notvar') as var3
from table1
如果未指定用于获取宏变量值的引号或函数,则所选对象(在您的情况下为“one”)将被视为原始表中的列。因此没有这样的列就会出错。