SQL - 括号中的Select语句

时间:2018-03-28 09:57:02

标签: sql sas

是否有将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结束。

1 个答案:

答案 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