2016-06-30 1 views
0

J'utilise Proc SQL pour créer des vues Teradata. J'ai utilisé Execute (pass through facility) et j'ai passé les noms de colonnes en utilisant des variables. Mais les vues qui sont créées n'ont pas les colonnes dans l'ordre qui a été passé dans la requête. Ils sont créés à n'importe quel ordre aléatoire. Y'a t'il un moyen d'arranger cela?Comment commander des colonnes créées avec Proc SQL dans SAS

Répondre

1

selon la méthode décrite 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 ; 
0

Pas familier avec Teradata en tant que tel, plus habitués à travailler avec SAS/DB2, mais si au lieu d'utiliser vous exécuter() utiliser quelque chose comme ça - cela va créer la vue sur le côté SAS (qui pourrait ne pas être ce que vous cherchez, je ne suis pas entièrement sûr).

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;