2011-03-15 70 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. ...