2010-02-24 47 views
2

這是一個典型的一個問題問我的老闆..在「喜歡」運營商需要選擇「NULL」(DB)值

問:如何選擇其使用的是像運營商在數據庫空值..

我試圖象下面這樣:

select c.ClaimID from claim c 
where c.InjuredPartyFirstName like (''+coalesce(c.InjuredPartyFirstName,'')+'') 

但是,這也不能正常工作........

請幫有人

在此先感謝... 維奈ķ

回答

4

爲什麼不使用

select c.ClaimID from claim c where c.InjuredPartyFirstName IS NULL 

如果這是某種奇怪的考驗,嘗試

select c.ClaimID from claim c 
where ISNULL(c.InjuredPartyFirstName, '') like '' 
+0

對LIKE和NULL使用兩個選擇的聯合可能會改善查詢,而不是使用「ISNULL」 - 從claim中選擇claimID,其中InjuiredPartyFirstName像'...'union從Claim中選擇claimID,其中InjuiredPartyFirstName爲空' – Sung 2010-02-24 16:34:25

+0

謝謝爲迴應....而這個答案我給了,但與COALESCE,而不是ISNULL,他滿意一半.... 謝謝 vinay – VInayK 2010-02-25 06:15:14

2

過濾通過NULL值的,像這樣進行:

select c.ClaimID 
from claim c 
where c.InjuredPartyFirstName IS NULL 
0

因此,正確的答案,這個技巧的問題是你不能直接用LIKE來完成,除非你想通過先合併空值來減慢查詢速度。然後向他/她解釋爲什麼 NULL是NULL並且不應該能夠直接應用LIKE。

編輯:也許這只是你的老闆測試過濾絕地出來的僞裝者?