雪花 - 查询变体中的空值

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);

【讨论】:

以上是关于雪花 - 查询变体中的空值的主要内容,如果未能解决你的问题,请参考以下文章

如何从 ColdFusion 查询循环中的返回值中检查空值

SQL DataReader 如何显示查询中的空值

PL/SQL查询中的空值问题

如何使用NSwag防止查询字符串中的空值

MS SQL Server 2008 中的空值处理

mysql中的空值问题