我在SAS EG中创建了一个提示,该提示接受文本输入并创建名为“ variableName”的宏变量。
我试图像这样引用此宏变量:
proc sql;
create table MyTable as
select * from Source_Table as a
where a.field = &variableName ;
这给了我一个错误,提示:“语法错误,期望以下之一:名称,带引号的字符串,数字常量,日期时间常量,缺少的值,BTRIM,INPUT,PUT,SUBSTRING,USER。 “
我也尝试过将&variableName用单引号和双引号引起来,但是当我这样做时,我只是没有得到任何结果。
当我使用查询生成器并根据该提示过滤数据时,我能够引用该提示,但是我试图在计算表达式等中以及在我编写的没有查询生成器的查询中使用提示的值。如何引用在提示中创建的变量?
编辑:具有宏变量应具有的值的代码
proc sql;
create table MyTable as
select * from Source_Table as a
where a.field = 'NAME OF PERSON';
运行该命令时,我会得到想要的结果。
答案 0 :(得分:0)
它需要解析为有效的SAS代码。假设&variableName是一个字符串,那么它将类似于:
proc sql;
create table MyTable as
select * from Source_Table as a
where a.field = "&variableName." ;
如果这不起作用,请显示一个查询,该查询的工作值与宏变量的值相同。然后,我们可以建议如何更改代码。
编辑:根据您的评论,您没有连接到查询的提示。右键单击查询并将提示链接到您的查询,它将在查询之前运行以提供值。