全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4458 8
2014-06-03
字符变量string=a&b

data abc;
input string $;
cards;
a&b
;run;
%macro mymacro();
   proc sql;
        select string into :string from abc;
   quit;

%if &string. eq  (string=a&b该怎么写) %then %put yes;
%mend;
%mymacro;


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-6-3 16:47:26
帮顶吧。
都没看出来用的什么软件编程的
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-6-3 23:50:15
后面为防止b被解读,正常是这么写:%nrstr(a&b),但是不管你后面怎么写,由于你的%if后面&string被解读为a&b,而由于b宏变量并不存在,&b无法被解读,所以肯定会出问题的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-6-4 14:40:19
%if %nrquote(&string.) eq  %nrstr(a&b) %then %put yes;

会有warning,但也能出结果


%if %superq(string) eq  %nrstr(a&b) %then %put yes;

能出结果,也没有warning
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-6-4 14:42:54
%SUPERQ masks the same characters as the %NRBQUOTE function. However, %SUPERQ does not attempt to resolve anything in the value of a macro variable. %NRBQUOTE attempts to resolve any macro references or macro variable values in the argument before masking the result
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-6-5 11:07:11
hkhl237 发表于 2014-6-4 14:40
%if %nrquote(&string.) eq  %nrstr(a&b) %then %put yes;

会有warning,但也能出结果
Thank you ~
       如果 string=a&b,b&c
       %do i=1 %to 2;
              str&i.=%scan(&string.,&i.,',');(这该如何写呢?)
       %end;
谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群