【发布时间】:2014-06-03 10:26:13
【问题描述】:
我编写了以下脚本,如下所示,它应该删除表中包含大约 70000 个变量的列。
在条件中我只给了你我的 SQL 脚本的一小部分。通常在所有条件都放好后,查询会检索我 6000 个变量-ish * 6。
宏变量 droplist_u 太小,无法保存所有内容。您是否有使用宏变量的替代方法并避免 报错“表达式长度(65535)超过最大长度(65534)”?
已编辑:获取下拉列表中的所有变量后,我将使用该命令行 %put droplist_u: &droplist_u; 将其转换为宏变量
%let pays1=IK ;
%do nopays=1 %to 1;
%do l=0 %to 5;
/*one off*/
proc sql;
select catt(nomvar,"_t&&l") into : droplist_u separated by ' ' from dico&&pays&nopays
where (intitule like 'RT1%' or intitule like '%RT12%'
or intitule like 'IS-PPI%'
or intitule like 'IS-IP%'
or intitule like 'IS-IP-SA%'
or intitule like 'IS-IMPR%'
or intitule like 'IS-IMPX%'
or intitule like 'IS-IMPZ%'
or intitule like 'B-E36%'
or intitule like 'B-D_F%'
or intitule like 'B-D%'
or intitule like 'B_C%'
or intitule like 'MIG_ING%'
or intitule like 'MIG_NRG%'
or intitule like 'MIG_CAG%'
or intitule like 'MIG_COG%'
or intitule like 'MIG_DCOG%'
or intitule like '%C191%'
or intitule like '%C192%'
or intitule like '%C20_C21%'
or intitule like '%C20%'
or intitule like '%C201%'
or intitule like '%C2011%'
or intitule like '%C2012%'
or intitule like '%C2013%'
or intitule like '%C2014%'
or intitule like '%C2015%'
or intitule like '%C2016%'
or intitule like '%C2017%'
or intitule like '%C202%'
or intitule like '%C203%'
or intitule like '%C204%'
or intitule like '%C2041%'
or intitule like '%C2042%'
or intitule like '%C205%'
or intitule like '%C2051%'
or intitule like '%C2052%'
or intitule like '%C2053%'
or intitule like '%C2059%'
or intitule like '%C206%'
or intitule like '%C21%'
or intitule like '%C211%'
or intitule like '%PCH_SM%');
quit;
%put droplist_u: &droplist_u;
data a&&pays&nopays;
set a&&pays&nopays (drop=&droplist_u);
run;
%end;
%end;
%mend;
%testsql;
run;`
【问题讨论】: