2011-06-03 64 views
1

我在我的表中有一列有幾個不同的值,其中我通過使用group by進行了驗證。試圖找到返回0的列的NULL值的數量?

當我做這樣的事情它返回一個數字量:

SELECT COUNT(*) FROM table WHERE age=''; 

但是我這樣做的時候,它總是返回0儘管這是不正確的:

SELECT COUNT(*) FROM table WHERE age=NULL; 

任何想法,這是爲什麼返回0時它應該返回正確的結果?

回答

6
SELECT COUNT(*) FROM table WHERE age IS NULL; 

3.3.4.6. Working with NULL Values

爲了測試NULL,則不能使用該 算術比較操作符,如 =,<,或者<>。

使用IS NULL 和IS NOT NULL操作符:

+1

簡而言之,NULL是一個特殊的值,根據定義,它不能等於其他任何東西,包括它本身。 – 2011-06-03 17:55:34

+0

啊,是啊......傻傻的我哈哈。感謝那! – Brett 2011-06-03 18:56:54

1

NULL表示未知值,所以空在技術上並不等於什麼 - 包括本身

您應該使用IS NULL代替:

SELECT COUNT(*) FROM table WHERE age IS NULL 
1

你需要說 「年齡IS NULL」 而不是 「年齡=空」。 NULL不等於任何東西 - 這意味着沒有數據,並且不能測試是否相等。