Удаление и реформирование большого массива запросов, кажется, уничтожает ноль - PullRequest
0 голосов
/ 07 ноября 2018
SELECT ARRAY(SELECT foo FROM UNNEST(CAST(NULL as ARRAY<STRING>)) as foo) is null 

возвращает ложь

против.

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

возвращает истину

Моя конкретная ситуация заключается в том, что я хотел бы отсортировать массив, используя

SELECT ARRAY(SELECT foo from UNNEST(bar) as foo Order by foo) as arr 

и сохранить массив как нулевой, если он был изначально нулевым. Я открыт для альтернатив для сортировки массива, но с сохранением нуля (то есть я не зациклен на своей реализации).

1 Ответ

0 голосов
/ 08 ноября 2018

Массив пусто отличается от NULL с типом массива. Пустой массив - это массив без элементов. Это то, что вы получаете от UNNEST(). Таким образом, сравнение с NULL неверно.

Второй возвращает NULL, напечатанный как массив. Это эквивалентно NULL, поэтому сравнение верно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...