A1、A2、A3、A4、A5。。。(这些是列名或变量(
我想使用substr函数根据关联的数字来选择所有这些。
类似于;输入子字符串(变量.2(
我很确定这是可以做到的,但我不确定如何做到。知道吗?
我希望能够选择字母后面的数字。
我想订购5、4、3、2、1因为每周我都会得到更多的专栏,A1变成A2,新的一周变成A1,然后A5变成A6。
所以我想颠倒他们的顺序。我想做:按输入substr(变量.2(排序,但我不知道如何使其工作。
最佳,H.
您可以使用字典表、proc sql
和:into
语句来构建SQL select语句。对于本例,我们假设您的数据集名称为HAVE
。我们将从dictionary.columns
中选择HAVE
中以A开头的所有变量来构建SQL语句:
proc sql noprint;
select name
into :vars separated by ', '
from dictionary.columns
where memname = 'HAVE'
AND name LIKE 'AA_%A_BB'
order by input(compress(name,,'KD'), 8.) desc
;
quit;
这将创建宏变量&vars
,它看起来像这样:
AA_A5_BB, AA_A4_BB, AA_A3_BB, AA_A2_BB, AA_A1_BB
您可以将该权限传递到SQL select语句中:
proc sql;
create table want as
select &vars
from have
;
quit;