using this dummy dataset: DATA WORK.HAVE;
FORMAT ID $1. S1 $1. S2 $1. S3 $1. L1 $1.L2 $1. L3 $1.;
INFORMAT ID $1. S1 $1. S2 $1. S3 $1. L1 $1.L2 $1. L3 $1.;
INPUT ID S1 S2 S3 L1 L2 L3;
INFILE DATALINES DLM='|' DSD;
DATALINES;
1|A|B|C|X|Y|Z
; I tested this logic: PROC SQL;
SELECT DISTINCT name INTO :ColList separated by ','
FROM dictionary.columns
WHERE memname="HAVE"
AND SUBSTR(name,1,2) IN('S1','S2','S3','S4','S5','S6','S7','S8','S9');
QUIT;
%PUT &=ColList.; And produced the Macro variable "ColList" with this value printed in the log %PUT &=ColList.;
COLLIST=S1,S2,S3 Then wherever you want to use the list of columns identified, you can drop that macro variable into place.
... View more