迭代筛选DICTIONARY.COLUMNS-SAS
(在上下文中,我使用的是迭代筛选DICTIONARY.COLUMNS-SAS,sas,Sas,(在上下文中,我使用的是字典.COLUMNS——这是一个巨大的工具,使用它的操作运行速度非常慢。) 我有一个数据集my_datasets,只有一列,dataset,它给出了我感兴趣的SAS数据集的名称。我希望提取与这些数据集相关的字典.COLUMNS条目 这感觉像是一个左连接的作业,但运行时间太长(我还没有成功运行它)。DICTIONARY.COLUMNS上的过滤器会立即运行以进行比较 因此,我想知道是否有一种方法可以将my_datasetsdataset中的每个名称迭代到filter语句中,并
字典.COLUMNS
——这是一个巨大的工具,使用它的操作运行速度非常慢。)
我有一个数据集my_datasets
,只有一列,dataset
,它给出了我感兴趣的SAS数据集的名称。我希望提取与这些数据集相关的字典.COLUMNS
条目
这感觉像是一个左连接的作业,但运行时间太长(我还没有成功运行它)。DICTIONARY.COLUMNS
上的过滤器会立即运行以进行比较
因此,我想知道是否有一种方法可以将my_datasets
dataset中的每个名称迭代到filter语句中,并附加所有结果
对其他方法也持开放态度
这是我用来过滤的代码:
PROC SQL;
CREATE TABLE work.dictionary as
SELECT
libname as LIBRARY,
memname as DATASET,
name as VARIABLE_NAME,
type,
length,
format,
label
FROM DICTIONARY.COLUMNS
WHERE memname in ("dataset_name") /* Replace this value */
;
QUIT;
在使用迭代方法之前,您可以从my_数据集
中创建一个引用memnames的csv列表。此列表可用于
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也是长时间运行的字典查询的一个贡献者。在使用迭代方法之前,您可以从
my\u数据集创建引用的memnames的csv列表。此列表可用于
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也是长时间运行的字典查询的一个贡献者。使用
call execute
看起来像一个简单的作业,使用call execute