Как найти все столбцы из всех таблиц, которые соответствуют шаблону

У меня есть ряд таблиц в SAS, и я хотел бы перечислить все таблицы и их столбцы, где имя таблицы like "abc%" (т.е. все таблицы, которые начинаются со строки «abc»)

Я бы предпочел использовать proc sql, если это возможно.


person Dave Lee    schedule 12.09.2014    source источник
comment
Загляните в словарные таблицы, в них есть вся необходимая информация. Здесь есть несколько проработанных примеров 30.pdf   -  person Zfunk    schedule 12.09.2014
comment
Отлично - спасибо Zfunk!   -  person Dave Lee    schedule 16.09.2014


Ответы (1)


Как намекает Zfunk в комментариях, это возможно через dictionary.columns.

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

Имена (имена таблиц/библиотек) почти всегда в таблицах словарей написаны в верхнем регистре. LIBNAME очевидно, MEMNAME — это имя таблицы, NAME — это имя столбца. Там есть куча других вещей, создайте таблицу с select *, чтобы увидеть все это.

Существуют и другие полезные таблицы; полный список см. в SASHELP в Vs. SASHELP.VCOLUMN = dictionary.columns, и большинство других идентичны, за исключением удаления V и добавления s. документ Кирка Лаффлера SUGI 30, на который ZFunk ссылается в комментариях, также является отличным отправная точка для расследования этого.

person Joe    schedule 12.09.2014
comment
Это, наряду с комментарием Zfunk, полностью сработало. Спасибо за вашу помощь! - person Dave Lee; 16.09.2014