取消嵌套和重整大查询数组似乎会破坏null

时间:2018-11-07 20:32:58

标签: sql google-bigquery

SELECT ARRAY(SELECT foo FROM UNNEST(CAST(NULL as ARRAY<STRING>)) as foo) is null 

返回假

vs。

SELECT CAST(NULL as ARRAY<STRING>) is null 

返回true

我的具体情况是我想使用

对数组进行排序
SELECT ARRAY(SELECT foo from UNNEST(bar) as foo Order by foo) as arr 

,如果数组最初为空,则将其保留为空。我愿意接受其他方法来对数组进行排序,但保留null(这意味着我不会挂断我的实现)。

1 个答案:

答案 0 :(得分:2)

数组与具有数组类型的NULL不同。空数组是没有元素的数组。这就是您从UNNEST()获得的东西。因此,与NULL的比较是错误的。

第二个是返回NULL,类型为数组。这等效于NULL,因此比较是正确的。