2016-08-19 107 views
-2

我目前使用的是SQL Server 2008R2。如何防止刪除NULLS?

我使用這個腳本:

SELECT a.productname, a.orderdate, a.workarea 

FROM database1table1 AS a 

WHERE a.orderdate >='2016/08/01' 

這給輸出:當我修改上面的腳本讀取

PRODUCT NAME   ORDER DATE      WORKAREA 

x        2016/08/07   NULL 

y        2016/08/09   HOLDING 

z        2016/08/10   ACTION 

a        2016/08/12   ACTION 

我的問題出現了,

...

WHERE a.orderdate >='2016/08/01' 

**AND a.workarea NOT IN ('HOLDING')** 

Wh我這樣做,不僅會刪除'HOLDING',還會刪除NULL行,這絕對不是我想要的。

請你可以建議對腳本進行修改以防止NULLS被刪除 - 我只想看到'HOLDING'值被取出。

非常感謝!

+2

[T-SQL的可能重複:選擇行不等於一個值,包括空值](http://stackoverflow.com/questions/10421017/t-sql-select-rows-not-equal-to-a-value-including-nulls) –

回答

0

你可以嘗試一種變通方法

AND ISNULL(a.workarea,'') NOT IN ('HOLDING') 

這將改變所有空a.workarea在「哪裏」的「不」正常工作

+0

工作正常:謝謝 –

+0

它應該注意的是,在where子句中使用ISNULL將會阻止使用該列中的索引 – RdPC