如何PROC SQL从名为DATA_IN的库中提取信息?
预期信息包括:
我做了这样的尝试:
proc sql;
create table table_select as
select libname, memname, nobs, nvar
from dictionary.tables
where libname = 'DATA_IN'
order by nobs descending
;
但仍然不知道如何判断一个表是否包含“Subject_ID”或“Visit_Num”列,并将其标记为“1”或“0”。
谢谢您的帮助!
您需要一个将DICTIONARY.TABLES
与DICTIONARY.COLUMNS
连接起来的查询
例:
proc sql;
create table want (label='sashelp tables with a column named "name" or "MSRP"') as
select
tables.libname
, tables.memname
, tables.nobs
, tables.nvar
, not missing(mark.memname) as has_name_or_msrp
from
DICTIONARY.TABLES
left join
(select distinct memname from DICTIONARY.COLUMNS
where columns.libname = 'SASHELP'
and upcase(columns.name) in ('NAME', 'MSRP')
) as mark
on
tables.memname = mark.memname
where
tables.libname = 'SASHELP'
and memtype = 'DATA' /* restrict to only tables */
order by
nobs descending
;
data _null_;
run;