2016-06-10 13 views
0

Ich versuche, nur Business Unit-spezifische Informationen von einem großen Datamart abzurufen, und möchte meine Abfrage strukturieren, um nicht verwandte DepartmentIDs zu entfernen.Mehrere Platzhalter/Filter für SQL

In plainspeak, das Endziel ist auf alle DepartmentIDs mit "AN" beginnt zu filtern, und endend in 0, P, A, N, R, V, C, L, W, E, oder Y.

Derzeit ist die Abfrage beginnt mit:

FROM bbms_tpirc.dbo.LaborDetailByName LaborDetailByName 
WHERE (LaborDetailByName.post_year='2016') AND 
     (LaborDetailByName.center_id='APEEN') AND 
     (LaborDetailByName.loan Like 'AN%') 

aber ich mit dem nächsten Abschnitt werde kämpfen.

Mit einem anderen AND (LaborDetailByName.loan Like '%0', '%P') usw. wird nichts im Dataset zurückgegeben. Könnte ich überfiltern oder einfach ein Argument vergessen?

+0

ersetzen, die dbms verwenden Sie? Viele von ihnen haben Regexp. – jarlh

Antwort

1

Sie können Ihre Filterklausel

(LaborDetailByName.loan Like 'AN%') 

mit

(LaborDetailByName.loan Like 'AN%[OPANRVCLWEY]') 
+0

Viel einfacher als ich dachte, es wäre ... danke! –

+0

Froh, dass es für Sie hilfreich ist. :-) – jyao

0

In SQL Server oder MySQL können Sie RIGHT() verwenden:

AND RIGHT(LaborDetailByName.loan,1) in ('0','P','A','N','R','V','C','L','W','E','Y')