1
這是一個相當愚蠢的例子,但它保存了什麼,我試圖做(使用SAS大學版)的essense:SAS宏變量做不能解決
data TableList;
input tables $ cols $;
cards;
tab1 col
tab2 cul
;
run;
%macro test;
proc sql;
select tables
into:tabs separated by " "
from TableList;
quit;
%do i=1 %to 2;
%let t = %scan(&tabs,&i);
proc sql;
select cols
into: col
from TableList
where tables='&t';
quit;
%put &col;
%end;
%mend;
%test;
這樣做的問題是,當我運行這個代碼我得到這個錯誤信息:
WARNING: Apparent symbolic reference COL not resolved.
&col
這是爲什麼。在運行時不會改變&它的真實價值嗎?
更新: 設置「& t」而不是'& t'解決了我的問題。代碼現在正在工作。
data TableList;
input tables $ cols $;
cards;
tab1 col
tab2 cul
;
run;
%macro test;
proc sql;
select tables
into:tabs separated by " "
from TableList;
quit;
%do i=1 %to 2;
%let t = %scan(&tabs,&i);
proc sql;
select cols
into: col
from TableList
where tables="&t";
quit;
%put Column &col;
%end;
%mend;
%test;