全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5028 2
2014-04-10
悬赏 20 个论坛币 已解决
想问一下,SQL中是否有类似data步中的symget函数?

我想做的事情类似于:

symget('TRT'||put(TRTAN, best.)) - count as missing

这样。

另外,请问如何能得知SQL中都有哪些data步中可用的函数?例如ifc,例如propcase 这般。。

谢谢。

最佳答案

yongyitian 查看完整内容

symget语句的作用是将symput语句在同一个数据步生成的宏变量的值取出,赋给另一个变量。 proc sql;可以有多个select从句,后面的select从句可以调用前面从句生成的宏变量。 貌似不可以调用在同一个select从句中生成的宏变量。 %symdel one_name; %put one_name=&one_name; proc sql; select name into : one_name from sashelp.class where name like 'Lou%'; select * from sashelp.class ...
二维码

扫码加我 拉你入群

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

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

全部回复
2014-4-10 18:32:54
symget语句的作用是将symput语句在同一个数据步生成的宏变量的值取出,赋给另一个变量。

proc sql;可以有多个select从句,后面的select从句可以调用前面从句生成的宏变量。
貌似不可以调用在同一个select从句中生成的宏变量。

%symdel one_name;
%put one_name=&one_name;
proc sql;
     select name into : one_name
     from sashelp.class
     where name like 'Lou%';
     select * from sashelp.class
     where name = "&one_name";
quit;

proc sql 的条件语句是 where,case when,join ... on,没有 ifc.  
多数的数据步的字符函数可以在proc sql 中使用。 For example:
proc sql;
   select lowcase(name) as Newname,  propcase(substr(name, 2,1)) as Second_Initial
   from class;
quit;
二维码

扫码加我 拉你入群

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

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

2014-4-11 09:22:00
yongyitian 发表于 2014-4-10 18:32
symget语句的作用是将symput语句在同一个数据步生成的宏变量的值取出,赋给另一个变量。

proc sql;可以 ...
感谢您的回答。

select有这个用法:ifc(value > 0, 'Y', 'N') as result

我想说的是,我的SQL中有例如两个宏变量叫做TRT1和TRT2,
然后我想在SQL中根据数据集本身TRT变量的值来选择对于某条观测,他到底是调用TRT1还是调用TRT2

那只好在data步中实现了,谢谢啊~
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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