如何查找与模式匹配的所有表中的所有列

时间:2014-09-12 08:37:02

标签: sas metadata proc-sql

我在SAS中有一系列表,我想列出表名为like "abc%"的所有表及其列(即所有以字符串“abc”开头的表)

如果可能,我宁愿使用proc sql。

1 个答案:

答案 0 :(得分:2)

正如Zfunk在评论中提到的那样,这可以通过dictionary.columns来实现。

proc sql;
  select name 
    from dictionary.columns
    where libname='MYLIB' and memname like 'ABC%';
quit;

名称(表/ libnames)几乎总是在字典表中大写。 LIBNAME很明显,MEMNAME是表名,NAME是列名。那里有很多其他的东西,用select *创建一个表来查看所有内容。

还存在其他有用的表格;要了解完整列表,请查看V中的SASHELPSASHELP.VCOLUMN = dictionary.columns,除了删除V并添加s之外,其他大多数都是相同的。 ZFunk在评论中提到的Kirk Laffler's SUGI 30 paper也是调查此问题的绝佳起点。