BigQuery标准SQL:检查数组是否为null不起作用

时间:2018-05-04 09:48:33

标签: google-bigquery

如果我启动此查询:

with a as (
select cast(null as array<string>) as x union all select ['str1','str2'] as x)
select * from a where x is null

我得到了这个结果:

enter image description here

这是我预期的结果。

但是,如果我首先启动此查询:

 select cast(null as array<string>) as x union all select ['str1', 'str2'] as x

其结果我保存在数据集“tmp”中的表“a”中,然后我启动此查询:

select * from `tmp.a` where x is null

我得到了这个结果:

enter image description here

我期望结果与第一个相同。为什么这两个结果有区别?

1 个答案:

答案 0 :(得分:5)

解决方法:要在两个案例中获得相同的结果,您可以在where子句中使用函数ARRAY_LENGTH(x)=0