Невозможно сделать именно это, но есть некоторые варианты, которые, вероятно, подойдут вам.
Сначала напишите SQL-оператор, который записывает эти условия в макропеременную proc_conditions
proc sql;
select compbl(name ||' in ('111', '222', '333')')
into : proc_conditions separated by ' or '
from sasHelp.vcolumn
where libName = 'WORK'
and memName = 'TABLE2'
and upcase(Name) like 'PROC%'
;
Обратите внимание, что libName и memName всегда в верхнем регистре метаданных, тогда как поле Name или смешанный регистр (но без учета регистра). Я добавил Compbl
, чтобы уменьшить количество пробелов в одиночном разряде, но это не обязательно.
Вы можете проверить результат proc1 in ('111', '222', '333') or proc2 in ('111', '222', '333') or proc3 in ('111', '222', '333')
, записав его в журнал.
%put &proc_conditions;
Тогда просто используйте это
create table2 as
select * from table1
where &proc_conditions;
quit;