【问题标题】:How to order columns created using Proc SQL in SAS如何在 SAS 中对使用 Proc SQL 创建的列进行排序
【发布时间】:2016-11-02 02:30:51
【问题描述】:

我正在使用 Proc SQL 创建 Teradata 视图。我使用了 Execute(通过设施)并将列名作为使用变量传递。但是正在创建的视图没有按传递给查询的顺序排列的列。它们是按任何随机顺序创建的。有没有办法解决这个问题?

【问题讨论】:

    标签: sas views teradata proc-sql


    【解决方案1】:

    使用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 ;
    

    【讨论】:

      【解决方案2】:

      不熟悉 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;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-26
        • 2016-10-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多