根据长度不同的值从SAS数据集中提取数据

时间:2019-06-24 08:17:45

标签: automation sas sas-macro

我正在寻找一个自动化的流程,该流程包含一个销售数据集和一个名为SALES CODE的特定列,该列由5个字母组成。 根据用户给出的输入,我想过滤数据,但是问题是用户可以给出多个销售代码,有时根据条件,代码长度可能是5、4、3、2或1。如何根据上述条件过滤出所需的行?

SALESCODE area value units rep
A10AA            KR     100 10     Jay
B10AQ            TN     120 12     Jrn 
C10AH            KR     200 10     Jay
T11TA             TR     180 10     Jay

说,如果我输入为A10AA, B10A, T11,我应该可以

使用代码A10AA, B10AQ, T11TA.获取销售数据。

1 个答案:

答案 0 :(得分:1)

使用IN运算符。由于要匹配以指定值开头的值,请使用:修饰符。由于您的值是字符值,因此请确保包含引号。

proc print data=sales_data ;
  where salescode in: ("A10AA" "B10A" "T11");
run;

如果需要,可以在列表中的值之间使用逗号,但是我发现键入空格更容易。