雪花 - 查询变体中的空值
Posted
技术标签:
【中文标题】雪花 - 查询变体中的空值【英文标题】:Snowflake - Querying null values in variant 【发布时间】:2020-07-10 05:41:45 【问题描述】:我想过滤掉变体中具有空值的某些键的记录
变量列结构
列名:规格
"color": 32,
"browser": null,
"language": "en"
)
想要下面的东西:
select * from table where specs:browser is not null
但它不起作用,因为这似乎是 json null 而不是 SQL NULL。有没有办法可以在变体中获取存储为 SQL NULL 的值?我更感兴趣的是有一个简单的查询来过滤数据,而不是编写一些用于转换的函数。
谢谢!
【问题讨论】:
【参考方案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);
【讨论】:
以上是关于雪花 - 查询变体中的空值的主要内容,如果未能解决你的问题,请参考以下文章