【发布时间】:2016-11-02 02:30:51
【问题描述】:
我正在使用 Proc SQL 创建 Teradata 视图。我使用了 Execute(通过设施)并将列名作为使用变量传递。但是正在创建的视图没有按传递给查询的顺序排列的列。它们是按任何随机顺序创建的。有没有办法解决这个问题?
【问题讨论】:
标签: sas views teradata proc-sql
我正在使用 Proc SQL 创建 Teradata 视图。我使用了 Execute(通过设施)并将列名作为使用变量传递。但是正在创建的视图没有按传递给查询的顺序排列的列。它们是按任何随机顺序创建的。有没有办法解决这个问题?
【问题讨论】:
标签: sas views teradata proc-sql
使用here描述的方法:
data tmp;
aa = 1;
db = 1;
ac = 1;
bb = 1;
run;
proc sql ;
select name into :VARLIST separated by ', '
from dictionary.columns
where libname = 'WORK'
and memname = 'TMP'
order by name ;
quit ;
proc sql ;
create table ordered as
select &VARLIST
from work.tmp ;
quit ;
【讨论】:
不熟悉 Teradata 本身,更习惯于使用 SAS/DB2,但是如果不使用 execute() 而不是使用类似的东西怎么办 - 这将在 SAS 端创建视图(可能不是你在追求什么,我不完全确定)。
proc sql;
connect to teradata (user=testuser password=testpass);
create view work.myView as
select * from connection to teradata
(select var1, var2, var3
from someTable);
quit;
【讨论】: