0

我想过滤掉具有空值的变体中某些键的记录

变体列结构

栏目名称:规格

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

想要下面的东西:

select * from table where specs:browser is not null

但它不起作用,因为这似乎是 json null 而不是 SQL NULL。有没有办法在变体中获取存储为 SQL NULL 的值?我更感兴趣的是有一个简单的查询来过滤数据,而不是编写一些用于转换的函数。

谢谢!

4

1 回答 1

1

Snowflake 具有不同的功能来检测数据库 null 和 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);
于 2020-07-10T13:17:30.280 回答