2017-08-17 91 views

回答

10

在SQL中,NULL是一個特殊值,沒有任何東西可以永遠等於或不等於它。實際上,NULL甚至不等於自己。搜索空值時,您必須使用IS運算符。所以,你需要改變你的查詢,包括他們:

SELECT * 
FROM dbo.myTable 
WHERE value !=0 
OR value IS NULL 
0

您也可以替換空爲其他某事究竟是不是使用isnull或​​3210

SELECT * 
FROM dbo.myTable 
WHERE ISNULL(value,1) <> 0 
0

NULL零是一個「非價值」 。一些比較工具將忽略/跳過每個NULL's。 (NULL不存在。)

你有3個選項:

1)插入值(42),而不是NULL。例如:設置默認值ALTER TABLE myTable ADD CONSTRAINT DF_mytable_value DEFAULT (42) FOR value

2)將NULL添加到您的查詢條件。

SELECT * 
FROM myTable 
WHERE value != 1 OR value IS NULL 

3)比較你在哪裏clausel內的每一個00,每else1

SELECT * 
FROM myTable 
WHERE 1 = CASE value WHEN 0 THEN 0 ELSE 1