2017-03-15 3 views
0

Ich habe eine Abfrage, die ich zu laufen versuche und ich möchte durch mehrere Bedingungen filtern, aber ich kann nicht scheinen, einen Weg zu finden, um hier zu tun ist mein Code:Filterung durch mehrere Bedingungen LIKE-Operator mit SAS

WHERE (AL1.X_ult=AL6.X_ult) 

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

ich bin neu in SAS und ich frage mich, wie ich LIKE um mehr als eine Bedingung zum filtern verwenden kann, oder ist sie ein anderer Betreiber ich stattdessen verwenden sollte, denn wenn ich nur laufen:

WHERE (AL1.X_ult=AL6.X_ult) 

AND (AL1.X_number LIKE '%123456789' 

es läuft gut, aber Ich möchte nach mehreren Zahlen wie

filtern
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' 

jede Hilfe würde sehr geschätzt werden, auch etwas zu beachten, werden mehrere Zahlen in meinem LIKE, die diese 9-stelligen Zahlen übereinstimmen, so möchte ich alle Zahlen, die diese Ziffern in ihnen haben ziehen.

Antwort

1

Scheint, dass Sie dort "ODER" brauchen?

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') 

Sie können einige von ihnen in der gleichen wie erhalten:

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') 

aber es hängt davon ab, ob es andere mit dem Muster, das Sie nicht wollen, ...

Reguläre Ausdrücke sind die nächste "Stufe" für diese Art von Dingen, aber sie erfordern immer noch ein logisches Muster.

+0

Genau was ich tun musste, danke! – Cannon

Verwandte Themen