下面的 SQL 宏有什么问题?
我有多个名为“C_out1”2、3、4 等的数据集,我想从每个数据集中只提取一个数字到一个新表中。我已经搜索并寻求帮助,但没有任何运气。
我只在一个数据集上测试了没有宏元素的代码,并且效果很好,但是当我尝试使用下面的代码使其动态化时,它失败了。
我可以用一个简单的数据步来完成这项工作,但我对 SQL 语言还很陌生,我真的很想能够做到这一点。我必须加入近 200.000 个数据集,所以我猜测 SQL 比数据步骤更可取。
我得到错误:
"NOTE: Line generated by the macro variable "I".
1 C_out5
------
78
ERROR 78-322: Expecting a ','.
974 where label2='c';
975 quit;
代码:
%macro loop(prefix2);
%do i=1 %to 5;
&prefix2&i
%let i = %eval(&i+1);
%end;
%mend loop;
PROC SQL;
create table CTOTAL as
select nvalue2
from %loop(C_out)
where label2='c';
quit;