sql server中的宏值分配传递

发布于 2024-10-22 02:11:41 字数 268 浏览 7 评论 0原文

我正在尝试使用 SAS 宏中的宏变量作为 newcolumn 中的值 例如:

%let macrovariable = value;

我希望将 newcolumn 中的每个值指定为值 怎样才能做到这一点?我使用了下面的代码,但最终得到“&macrovariable”而不是“value”。

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

I'm trying to use the macrovariable in SAS macro as value in the newcolumn
for example :

%let macrovariable = value;

I would like to have every single value in newcolumn assign as value
how can do that ? I have used this code below but end up get "¯ovariable" instead of "value".

SELECT CAST('¯ovariable.' as char) newcolumn

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

毅然前行 2024-10-29 02:11:41

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

Try using double quotes, instead of single quotes.

淡淡離愁欲言轉身 2024-10-29 02:11:41

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

SELECT CAST(%str(%')¯ovariable.%str(%') as char) newcolumn 

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

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

So.. here's the answer ( just in case anyone wants to know )

SELECT CAST(%str(%')¯ovariable.%str(%') as char) newcolumn 

This way, it was actually force the macro read it with the single qotation before the pass-through sql server.

Very tricky and very fun - actually.

孤檠 2024-10-29 02:11:41
* Add single quotes around mv;
data _null_;
    call symput('mvsq',"'&mv.'");
run;
%put &mvsq; *debug;
...
select &mvsq. ...
* Add single quotes around mv;
data _null_;
    call symput('mvsq',"'&mv.'");
run;
%put &mvsq; *debug;
...
select &mvsq. ...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文