2016-10-11 115 views
0

我想在其名称中使用宏与宏变量像这样的例子:如何在proc sql宏中使用Cat?

%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,然后选择要使用的宏变量。

回答

0

下面的代码没有经过测试,但它可能适合您的需要: 我将column_number作为宏“Test”的参数。双连字符使得它首次读取跳过宏变量列,并首先定义宏列编号,因此当读取宏变量列时,它是有意义的。有时,最后的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);