是否有将select语句放入括号或类似内容的解决方案?
我需要执行此操作:
select t1.plz, t1.help, t1.me AS...
问题是,我的列从变量获取并且我的代码执行此
select t1.plz, help, me
它的工作原理是我将它与另一个表连接起来并且密钥混淆了。这有效 - t2.key,car, ...... 但 t2.car,密钥没有,因为我需要将密钥重命名为key2而没有前面的t2.key它才能完成工作......长篇故事。 我需要得到那个t1./t2。在每一栏前面。
这个问题有解决方案吗?
我的代码(SAS)
create table work.test as
select t1.&string1 t2.&string2
我不能把t1。在每个字符串前面,因为我执行循环,所以这将以t1.plz,t1.t1.help,t1.t1.t1,me结束。
答案 0 :(得分:2)
使用TRANWRD()
功能替换所有","用",t1。"然后使用SYMPUTX()
创建宏变量。
以下代码将通过创建具有正确前缀的宏来解决此问题:
data _null_;
%let str1= "plz, help, me";
%let str2= "plz, help, me";
t1= cats('t1.',tranwrd(&str1,", ",", t1."));
t2= cats('t2.',tranwrd(&str2,", ",", t2."));
call symputx('string1',t1,'L');
call symputx('string2',t2,'L');
put _all_;
run;
输出:两个宏& string1和& string2将具有以下值。
t1.plz, t1.help, t1.me
t2.plz, t2.help, t2.me