2016-11-25 9 views
0

SASですべてのIDのリストを作成するには、「select into」を使用します。シンプルなSASを選択する

/* my state table try01 */ 
data try01; 
input id state $; 
cards; 
1108 va 
1102 dc 
1101 md 
1105 on 
; 

run; 

/* select into */ 
proc sql noprint; 
select id into: x from try01; 
quit; 

%put &x; 

ログはマクロxが一つの値だけ(1108年)であることを示しているなぜ私の質問は、リスト(1108,1102,1101,1105)の代わりに のですか?だから混乱...たくさんありがとう。

+0

'into'は値をスカラー変数に置きます。なぜあなたはリストを期待していますか? –

+0

sql clause select idの結果がリスト(1108,1102,1101,1105)を返すためです。マクロxもリストにする必要があります。私が間違っている? – sincerelyurs

答えて

3

マクロに複数の値をマクロ変数に入れる場合は、SEPARATED BY句を含める必要があります。

select id into :x separated by ' ' from try01; 

このリストは、たとえばINオペレータコールで使用できます。

proc print data=have ; 
    where id in (&x); 
run; 
+0

トムありがとう!問題が解決しました!^__ ^ – sincerelyurs

関連する問題