2012-07-13 76 views
0

我測試過Google BigQuery提供的IS NULL函數,但它似乎沒有給出正確的結果。IS NULL函數不起作用

示例數據:

id age gender password 
1, 11, NULL,  NULL 
1, 11, "NULL", "NULL" 
1, 11, "null", "null" 
1,  , NULL,  NULL 

QUERY:

SELECT id, age, gender, password, id IS NULL, age IS NULL, gender IS NULL, password IS NULL 
FROM privatedata.testnull 

OUTPUT:

Row id age gender password f0_ f1_  f2_  f3_  
1 1 11 NULL NULL false false false false  
2 1 11 NULL NULL false false false false  
3 1 11 null null false false false false  
4 1 0 NULL NULL false false false false  

但這SQL工作:

SELECT NULL IS NULL, COUNT(*) FROM privatedata:testnull 

所以我不確定IS NULL是否正常工作。此外,我很困惑我將如何以字符串格式和數字格式插入空數據。

回答

0

EDITED答:

對於非常舊錶存在這樣的問題,我們並沒有保留的空白區域,空一個之間。這個問題應該由固定因爲這是3月以後創建的任何表,2013年

OLD答:

我認爲問題是,對於字符串字段,我們解釋爲空字符串「NULL」。如果你只使用, ,作爲字符串值呢?

令人驚訝的是,第4行的年齡應該顯示爲空。它看起來像是IS_NULL函數有問題。我在內部提交了一個錯誤。但是,IS_EXPLICITLY_DEFINED()函數應該返回所期望的值(例如,第4行中的年齡爲IS_EXPLICITLY_DEFINED將返回fasle)。

+0

如果我爲字符串值輸入空值(「,」)並運行相同的查詢,IS NULL輸出仍然爲「false」 – 2012-07-16 08:44:28

+0

null問題原來是一個已知的內部錯誤。你現在應該使用IS_EXPLICITLY_DEFINED。 – 2012-07-16 16:57:29