sql server中的宏值赋值传递

时间:2011-03-15 15:04:32

标签: sql sql-server tsql sas

我正在尝试将SAS宏中的macrovariable用作新列中的值 例如:

%let macrovariable = value;

我想将newcolumn中的每个值赋值为value 怎么办?我在下面使用了这段代码,但最终获得了“& macrovariable”而不是“value”。

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

3 个答案:

答案 0 :(得分:1)

尝试使用双引号,而不是单引号。

答案 1 :(得分:1)

所以..这就是答案(以防万一有人想知道)

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

这样,它实际上是强制宏在传递sql服务器之前用单个qotation读取它。

非常棘手且非常有趣 - 实际上。

答案 2 :(得分:0)

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