2016-10-11 113 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);