2015-05-04 70 views

回答

1

我們不能比較空值與=我們特別操作者在SQL比較空 值 成爲各運營商

SELECT * 
FROM DATA 
WHERE VALUE is not NULL; 

null不是任何Value.Sql考慮Null作爲未知/不存在的數據

1

下面的代碼工作,如果應該,如果你更換工作「!=」與「不是」。

+0

我知道,爲什麼這不起作用呢?這似乎合乎邏輯。 – dineshdileep

+1

NULL是一個特殊情況,沒有什麼等於NULL。儘管不是1或2,NULL也不會被挑選出來:'VALUE NOT IN(1,2)'。 – mjsqu

+0

他們的方式我概念化它,NULL是缺少數據。使用數據之間的相等比較器和缺少數據它是一個邏輯上的非起動器。看看這個類似的問題的另一個答案:http://stackoverflow.com/questions/12853944/why-in-sql-null-cant-match-with-null –

1

您編寫的條件格式不正確。 如果你想從你的表中選擇不爲空值,那麼你可以使用下面的命令

select *from table name where column name IS NOT NULL 
0

因爲NULL值表示沒有數據的,它沒有任何意義與價值,它比較的東西與等號運算符。

您可以通過運行語句之前關閉

SET ANSI_NULLS OFF 

設置ANSI_NULLS讓你的SELECT語句的工作。你可以在這裏得到進一步的信息:

https://msdn.microsoft.com/en-us/library/ms188048.aspx

+0

請注意,這是一個MS SQL Server的特定功能。 (並沒有指定DBMS ...) – jarlh

0

的代碼將無法在SQL工作,因爲它是不可能使用以下運算符=測試NULL值,<,或者<>。無法比較NULL和0,因爲它們不相同。

您可以使用IS NULL和IS NOT NULL運算符來測試NULL值。

SELECT * 
FROM DATA 
WHERE VALUE IS NOT NULL 

http://www.w3schools.com/sql/sql_null_values.asp

0

空不包含任何價值。 Null既不是零也不是任何值。 所以我們不能用比較運算符來比較它。 而不是使用'=',你應該使用'IS'關鍵字。

SELECT * FROM DATA WHERE VALUE IS NOT NULL;