IS NULL功能不起作用

时间:2012-07-13 08:03:59

标签: google-bigquery

我测试了Google BigQuery提供的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

输出:

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是否有效。另外,我对如何以字符串格式和数字格式插入空数据感到困惑。

1 个答案:

答案 0 :(得分:0)

编辑回答:

对于非常旧的表,我们没有保留空字段和NULL字段之间的问题。对于2013年3月之后创建的任何表,此问题应该已修复。

老答案:

我认为问题在于对于字符串字段,我们将NULL解释为字符串“NULL”。如果您只使用, ,作为字符串值,该怎么办?

令人惊讶的是,第4行的年龄应显示为空。看起来IS_NULL函数有问题。我在内部提交了一个错误。但是,IS_EXPLICITLY_DEFINED()函数应该返回您期望的内容(例如,第4行中的年龄的IS_EXPLICITLY_DEFINED将返回fasle)。