2014年6月4日水曜日

SQLプロシジャでデータセットオプションを使うメリット。


知ってるという人も多いと思うけど、SQLでも一部のデータセットオプションを使うことができる。

便利だけど、あまり使われてない気がします。
ということで、SQLでデータセットオプションを使うメリットを紹介します。

サンプルデータ作成

data DT1;
   retain  A1 - A5 1;
run;

データセットDT1
A1   A2   A3   A4   A5
 1     1     1      1      1


SQLでデータセットオプションを使う

問題①データDT1をもとにDT2を作成。ただし変数A3はB3にrename。
結果データセットDT2
A1   A2   B3   A4   A5
 1     1     1      1      1

*** 通常のSQL文 ;
proc sql;
 create table DT2 as
 select A1,
           A2,
           A3 as B3,
           A4,
           A5
 from DT1 ;
quit;

*** データセットオプションを使う場合 ;
proc sql;
 create table DT2 as
 select *
 from DT1 (rename=(A3=B3)) ;
quit;


問題②データDT1をもとにDT3を作成し、変数A1~A3を格納。
結果データセットDT3
A1   A2   A3
 1     1     1

*** 通常のSQL文 ;
proc sql;
 create table DT3 as
 select A1,
           A2,
           A3
 from DT1 ;
quit;

*** データセットオプションを使う場合 ;
proc sql;
 create table DT3 as
 select *
 from DT1 (keep=A1-A3) ;
quit;


このように、通常「select *」が使えない場合でも、SASのデータセットオプションを組み合わせることで使えるようになる。

今回はほんの一例で、他にも色々スッキリした文を書ける場合があります。
データセットオプションは「create table」「from句」で使用することが出来る。
SASとSQLのいいとこ取りです!

0 件のコメント:

コメントを投稿