2016-11-25 43 views
0

我想使用「select into」來創建SAS中所有ID的列表。簡單的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子句select id的結果返回一個列表(1108,1102,1101,1105)。所以宏觀x應該也是一個列表。我錯了嗎? – sincerelyurs

回答

3

如果您希望SQL將多個值放入宏變量,則需要包含SEPARATED BY子句。

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

然後,您可以使用此列表中,例如IN話務員呼叫。

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

非常感謝湯姆!問題解決了!^__ ^ – sincerelyurs