2016-11-25 2 views
0

Я хочу использовать «выбрать» для создания списка всех идентификаторов в SAS.простой 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; 

Мой вопрос, почему журнал показывает, что макрос х только одно значение (1108) вместо списка (1108,1102,1101,1105)? Так смутно ... Большое спасибо.

+0

'in' помещает значение в скалярную переменную. Почему вы ожидаете список? –

+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

Смежные вопросы