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(这意味着我不会挂断我的实现)。
答案 0 :(得分:2)
空数组与具有数组类型的NULL
不同。空数组是没有元素的数组。这就是您从UNNEST()
获得的东西。因此,与NULL
的比较是错误的。
第二个是返回NULL
,类型为数组。这等效于NULL
,因此比较是正确的。