我下面有一个不起作用的SAS宏--此代码段不返回任何值,因为where语句不起作用。有人有主意吗?我尝试添加%str,但是那也不起作用。

%macro refreshments(beverage_type=);

proc sql;
select

*

where drink_type = '&beverage_type.'
;
quit;

%mend

%refreshments(Sprite);

谢谢。

最佳答案

宏变量不会以单引号引起来。您还缺少FROM子句,并且将宏参数作为位置提供(而不是名称=值对)。请尝试以下操作:

%macro refreshments(beverage_type=);
  proc sql;
  select *
    from YOURTABLE
    where drink_type = "&beverage_type";
%mend;

%refreshments(beverage_type=Sprite);

10-02 02:14