如何在proc sql宏中使用Cat?

时间:2016-10-11 09:21:27

标签: proc-sql

我想在其名称中使用带宏变量的宏,例如:

%let column1 = "XYZ"n;
%let column2 = "ZXY"n;
%let column_number = 1;

proc sql; create table abc
as select &cats("column","&column_number")
where column = column_number
;quit;

这意味着,我想在调用宏变量时使用该数字,但也在代码中的其他地方使用它。这意味着只需更改column_number,并选择要使用的宏变量。

1 个答案:

答案 0 :(得分:0)

以下代码未经过测试,但可能符合您的需求: 我将column_number变成了宏的参数" Test"。双和号使得第一次读取通过跳过宏变量列,并首先定义宏column_number,因此当读取宏变量列时它是有意义的。有时末尾的column_number周围的引号可能没有必要,这取决于column_number的数据类型。

%let column1 = "XYZ"n;
%let column2 = "ZXY"n;

%macro Test (column_number);
proc sql; create table abc
as select &&column.&column_number
where column = "&column_number"
;quit;
%mend Test;
%Test (column_number=1);
%Test (column_number=2);