Snowflake - вариант запроса нулевых значений - PullRequest
0 голосов
/ 10 июля 2020

Я хотел бы отфильтровать записи с определенными ключами в варианте, имеющем нулевые значения

структура столбца варианта

Имя столбца: спецификации

{
"color": 32,
"browser": null,
"language": "en"
)

Хотите что-то вроде ниже:

select * from table where specs:browser is not null

Но это не работает, так как это похоже на json null, а не SQL NULL. Есть ли способ получить значения, хранящиеся как SQL NULL в варианте? Меня больше интересует простой запрос для фильтрации данных, а не написание некоторых функций для преобразования.

Спасибо!

1 Ответ

2 голосов
/ 10 июля 2020

Snowflake имеет разные функции для обнаружения нуля базы данных и JSON null. Тот, который вам нужен, is_null_value:

create temp table t(v variant);
insert into t select parse_json('{"color": 32,"browser": null,"language": "en"}');

select is_null_value(v:browser) as IS_BROWSER_NULL from t;

Затем вы можете использовать в своем предложении where следующим образом:

select * from t where not is_null_value(v:browser);
...