我提出以下问题:
如何使用SAS获取表名和该表的计数?
如果我使用的是Oracle SQL,我会生成一个元查询并将其假脱机,并使用如下查询:
spool test.sql
SELECT 'select '||''''||table_name||''''||',count(*) from '||table_name FROM all_tables;
spool off
一旦假脱机,我会运行整个查询,这会给我下面的查询
SELECT 'table_called_toto',COUNT(*) FROM table_called_toto;
一旦跑了,我会得到那样的结果:
table_called_toto,20
SAS中是否存在类似的情况?如果是,我应该怎么做?
答案 0 :(得分:1)
我认为您正在寻找宏编程。但您也可以查询sashelp.vtable,其中包含有关SAS表的元数据。如果您有一个表列表,我会执行以下操作:
proc sql;
select libname, memname, nobs
from sashelp.vtable
where upcase(libname)='WORK' and upcase(memname) in (Select upcase(table_name) from all_tables);
quit;
请注意,比较区分大小写。