(对于上下文,我正在使用DICTIONARY.COLUMNS
dataset - 这是巨大的,并且使用它的操作速度非常慢。)
我有一个数据集my_datasets
,只有一列dataset
,它提供了我感兴趣的SAS数据集的名称。我希望提取{{1}与这些数据集相关的条目。
对于DICTIONARY.COLUMNS
而言,这通常是一项工作,但这需要太长时间才能运行(我还没有成功运行它)。 LEFT JOIN
上的过滤器会立即运行。
因此,我想知道是否有办法可以遍历DICTIONARY.COLUMNS
数据集中的每个名称,迭代到过滤器语句中,并附加所有结果。
也开放其他方法。
这是我用来过滤的代码:
my_datasets
答案 0 :(得分:3)
在进行迭代方法之前,您可以从my_datasets
创建引用的memnames的csv列表。此列表可用于过滤IN
proc sql;
reset noprint;
select quote(trim(dataset)) into :target_dataset_names separated by ','
from my_datasets
;
create table work.my_dictionary as
select ...
from dictionary.columns
where memname in (&target_dataset_names)
;
您可能希望通过过滤libname
来定位候选库 and libname in ('PROJECT1', 'ROSSDATA', 'WORK')
远程librefs也是长时间运行字典查询的一个贡献者。