2011-03-15 50 views
0

我試圖使用macrovariable在SAS宏作爲值在newcolumn 例如:宏賦值在SQL Server通過

%let macrovariable = value; 

我想在newcolumn每一個值指定爲值 怎麼能做到這一點?我在下面用這個代碼,但最終GET「& macrovariable」而不是「價值」。

SELECT CAST('&macrovariable.' as char) newcolumn 

回答

1

嘗試使用雙引號而不是單引號。

+0

感謝,爲快速答覆,但是當我使用雙引號,它要求列「值」 – iamjeannie 2011-03-15 17:00:23

+0

我能夠在本機SAS沒有問題運行。您是否在Enterprise Guide中運行?可能有一個選項可以關閉默認提示。 – 2011-03-15 17:23:30

+0

我用過9.3。它要求我的字段或列名爲「價值」,而不是承認值作爲actaul值。 – iamjeannie 2011-03-15 17:40:18

1

所以..這裏的答案(以防萬一有人想知道)

SELECT CAST(%str(%')&macrovariable.%str(%') as char) newcolumn 

通過這種方式,它實際上是強制宏與直通SQL Server之前單一qotation閱讀。

很棘手,很好玩 - 實際上。

+1

的清潔器的方法是:SELECT CAST(%BQUOTE( '&MACROVARIABLE')爲char)newcolumn – 2011-03-17 12:54:37

+0

這是真棒!謝謝克里斯 – iamjeannie 2011-03-18 18:27:55

0
* Add single quotes around mv; 
data _null_; 
    call symput('mvsq',"'&mv.'"); 
run; 
%put &mvsq; *debug; 
... 
select &mvsq. ...