2016-10-05 51 views
0

是否有更簡單(清潔劑)的方式來實現以下目標:多不喜歡的語句

AND Prov_Credentialing not like ('%AS%') AND Prov_Credentialing not like ('%CI%') 
AND Prov_Credentialing not like ('%DI%') AND Prov_Credentialing not like ('%FQ%') 
AND Prov_Credentialing not like ('%EM%') AND Prov_Credentialing not like ('%HS%') 
AND Prov_Credentialing not like ('%SN%') AND Prov_Credentialing not like ('%PH%') 
AND Prov_Credentialing not like ('%AN%') AND Prov_Credentialing not like ('%RQ%') 

的Prov_Credentialing列可能包含有多個代碼記錄。例如,列計數包含「AS,ED」。因此,NOT IN語句不起作用,因爲我需要包含任何具有「AS」的代碼。

在NOT LIKE語句中,我需要排除更多的代碼,我只列出了前10個。

感謝, 格雷格

+0

我想補充你需要排除到表的代碼,並使用與該條件的加盟。雖然這將始終表現非常糟糕(並且它也會如此表現) – Lamak

+0

正則表達式是一種數據引擎支持的方式 –

回答

2

商店模式在一個單獨的表:

CREATE TABLE NOT_LIKES (pattern VARCHAR(4)); 

INSERT INTO NOT_LIKES VALUES ('%AS%'); 
... 

SELECT ... 
WHERE ... 
AND NOT EXISTS (SELECT * FROM NOT_LIKES WHERE Prov_Credentialing LIKE pattern)