使用LIKE运算符SAS按多个条件进行过滤

时间:2017-03-15 14:12:33

标签: filter sas

我有一个我正在尝试运行的查询,我希望按多个条件进行筛选,但我似乎无法找到一种方法,这里是我的代码:

WHERE (AL1.X_ult=AL6.X_ult)  

AND (AL1.X_number LIKE '%123456789'
AND AL1.X_number LIKE '%1234567882'

我是SAS的新手,我想知道如何使用LIKE来过滤多个条件,或者是我应该使用的另一个操作符,因为当我只运行时:

WHERE (AL1.X_ult=AL6.X_ult)  

AND (AL1.X_number LIKE '%123456789'

它运行正常,但我想过滤掉多个数字,如

WHERE (AL1.X_ult=AL6.X_ult)  

AND (AL1.X_number LIKE '%123456789'
AND AL1.X_number LIKE '%1234567882'
AND AL1.X_number LIKE '%1234534882'
AND AL1.X_number LIKE '%1234512882'
AND AL1.X_number LIKE '%1234586882'
AND AL1.X_number LIKE '%1233921882'

任何帮助都会非常感激,同样值得注意的是,我的LIKE中的多个数字与那些9位数字相匹配,所以我想拉入其中包含这些数字的所有数字。

1 个答案:

答案 0 :(得分:1)

好像你需要“或”吗?

WHERE (AL1.X_ult=AL6.X_ult)  
AND (AL1.X_number LIKE '%123456789'
OR AL1.X_number LIKE '%1234567882'
OR AL1.X_number LIKE '%1234534882'
OR AL1.X_number LIKE '%1234512882'
OR AL1.X_number LIKE '%1234586882'
OR AL1.X_number LIKE '%1233921882')

您可以像以下一样获得其中一些:

WHERE (AL1.X_ult=AL6.X_ult)  
AND (AL1.X_number LIKE '%123456789'
OR AL1.X_number LIKE '%12345%882'
OR AL1.X_number LIKE '%1233921882')

但这取决于你不想要的其他模式......

正则表达式是这类事物的下一个“升级”,但它们仍然需要你有一些逻辑模式。