Sas 使用变量值作为宏变量的值

Sas 使用变量值作为宏变量的值,sas,sas-macro,Sas,Sas Macro,我有一个SAS数据集,其中有一列包含我想用作宏变量的值。假设SAS数据集具有以下一列: varname 34 367 399 87 我希望列中的所有值都成为宏变量中的串联字符串(适合在带有in运算符的if语句中使用)。结果相当于: %let var=%str('34','367','399','87') 我将如何做到这一点 我会使用PROC-SQL,但还有其他方法: proc sql noprint; select "'" || varname || "'" into :var sepa

我有一个SAS数据集,其中有一列包含我想用作宏变量的值。假设SAS数据集具有以下一列:

varname
34
367
399
87
我希望列中的所有值都成为宏变量中的串联字符串(适合在带有
in
运算符的
if
语句中使用)。结果相当于:

%let var=%str('34','367','399','87')


我将如何做到这一点

我会使用
PROC-SQL
,但还有其他方法:

proc sql noprint;
select "'" || varname || "'"
   into :var separated by ','
   from have;
quit;

%put var: &var;
这会将变量值与两侧的
连接起来。由
块分隔的
将在所有值之间放置一个
:var
告诉SQL将结果保存在名为
var
的宏中