0

我已经测试IS NULL了 Google BigQuery 提供的功能,但它似乎没有给出正确的结果。

样本数据:

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

询问:

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工作。此外,我对如何以字符串格式和数字格式插入空数据感到困惑。

4

1 回答 1

1

编辑答案:

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

旧答案:

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

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

于 2012-07-13T16:53:11.807 回答