我测试了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
是否有效。另外,我对如何以字符串格式和数字格式插入空数据感到困惑。
答案 0 :(得分:0)
编辑回答:
对于非常旧的表,我们没有保留空字段和NULL字段之间的问题。对于2013年3月之后创建的任何表,此问题应该已修复。
老答案:
我认为问题在于对于字符串字段,我们将NULL解释为字符串“NULL”。如果您只使用, ,
作为字符串值,该怎么办?
令人惊讶的是,第4行的年龄应显示为空。看起来IS_NULL函数有问题。我在内部提交了一个错误。但是,IS_EXPLICITLY_DEFINED()函数应该返回您期望的内容(例如,第4行中的年龄的IS_EXPLICITLY_DEFINED将返回fasle)。