楼主: tangliang0905
4103 2

macro中的单双引号的问题请教 [推广有奖]

  • 1关注
  • 3粉丝

讲师

52%

还不是VIP/贵宾

-

威望
0
论坛币
1137 个
通用积分
0.5583
学术水平
13 点
热心指数
20 点
信用等级
11 点
经验
30311 点
帖子
212
精华
0
在线时间
836 小时
注册时间
2012-11-29
最后登录
2024-7-23

楼主
tangliang0905 发表于 2014-2-9 09:04:38 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
主要是想做macro variable中的单引号与双引号的呼唤,发现在data step可以实现
%let a=%str('0123','0456');
%let b=%sysfunc(translate(&a,  "'" ,'"' ));
%put &a;
%put &b;
%let c=%str("0123","0456");
%let d=%sysfunc(translate(&c,'"' ,"'"));
%put &c;
%put &d;

运行结果如下
73   %let a=%str('0123','0456');
74   %let b=%sysfunc(translate(&a,  "'" ,'"' ));
75   %put &a;
'0123','0456'
76   %put &b;
"0123","0456"
77   %let c=%str("0123","0456");
78   %let d=%sysfunc(translate(&c,'"' ,"'"));
79   %put &c;
"0123","0456"
80   %put &d;
'0123','0456'


但是当我在sql中运用同样的方法以后,发现结果并不是我设想的那种。
proc sql;
create table a1 as
select '"'||trim(name)||'"'as name1, sex
from sashelp.class
;
select name1 into: name2 separated by ',' from a1;
quit;
%put &name2;
88   %put &name2;
"Alfred","Alice","Barbara","Carol","Henry","James","Jane","Janet","Jeffrey","John","Joyce","Judy","
Louise","Mary","Philip","Robert","Ronald","Thomas","William"


%let provname2=%sysfunc(translate(&name2,  "'" ,'"' ));
%put &provname2;

91   %put &provname2;
'Amet t'

发现得到macro variable &name2 是我设想的结果,但是当我用同样的方法做单双引号的转换的时候,却得到了一个‘Amet t’这个很奇怪的数据,不知道有没有大牛可以帮我解答一下?


二维码

扫码加我 拉你入群

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

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

关键词:Macro CRO acr Mac 双引号 双引号

沙发
你的太阳 发表于 2014-2-9 10:52:45
可以价格函数%nrbquote试一下

%let provname2=%sysfunc(translate(%nrquote(&name2),  "'" ,'"' ));
%put &provname2;
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Imasasor + 100 + 100 + 5 + 4 精彩帖子
tangliang0905 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 100  论坛币 + 100  学术水平 + 6  热心指数 + 5  信用等级 + 1   查看全部评分

藤椅
tangliang0905 发表于 2014-2-9 11:14:30
你的太阳 发表于 2014-2-9 10:52
可以价格函数%nrbquote试一下

%let provname2=%sysfunc(translate(%nrquote(&name2),  "'" ,'"' ));
多谢多谢,果然就转过来了。
用%nrquote就是把原variable中的单引号或者双引号都原封不动的提出来了,但是不用%nrquote的话,&name2是怎样传过来的呢?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-3 03:41