2015-04-01 77 views
1

我有這個查詢。 我想在日期範圍
GET記錄 - >完成 得到其中PriorSurgery =「是」的記錄 - >完成 得到記錄,其中諮詢顧問不是空白 - 不工作SQL測試空字符串

我如何測試沒有空白。
我用盡AND adm.adm_Consultant != ''
伊夫rried AND adm.adm_Consultant <> ''

和下面的一個(看起來更好的方式來做到這一點)

我在哪裏去了?

SELECT adm.adm_Consultant, adm.adm_PriorSurgery 
FROM Admission adm 
WHERE adm.adm_ReferralDate >= '01/01/2014 00:00:00' AND adm.adm_ReferralDate <= '31/12/2014 00:00:00' 
AND adm.adm_PriorSurgery = 'Yes', 
AND LENGTH(adm.adm_Consultant) > 0 
+0

也許顧問字段不爲空,但空?試試'AND adm.adm_Consultant不是NULL'。 – SukkoPera 2015-04-01 08:20:35

+0

對於Oracle dbms,其中''''與'NULL'字符串相同,與''''比較將永遠不會成立。 – 2015-04-01 08:24:23

+0

該指示的上限不應該是'31/12/2014 23:59:59'嗎?以防萬一某人在新年前夕被轉介... – 2015-04-01 08:30:41

回答

1

如果值是零,然後

SELECT adm.adm_Consultant, adm.adm_PriorSurgery 
FROM Admission adm 
WHERE adm.adm_ReferralDate >= '01/01/2014 00:00:00' AND adm.adm_ReferralDate <= '31/12/2014 00:00:00' 
AND adm.adm_PriorSurgery = 'Yes' 
AND adm.adm_Consultant IS NOT NULL 
+0

謝謝馬特。很好的工作是的。還有一件事。一張臉掌心效果的位。 'AND adm.adm_PriorSurgery ='Yes'後面的逗號也引發了問題。 「LENGTH」在移除後效果很好。謝謝 – morne 2015-04-01 08:25:40

+0

我也錯過了那個!是的,我會使用不是空,雖然(取決於您的數據大小)長度> 0將需要更長的時間來處理 – Matt 2015-04-01 08:26:29