AWS Redshift SQL - 如何检查 Json 对象中是否有值?

问题描述 投票:0回答:1

1/ 我正在 AWS 上使用 SQL,并尝试快速检测 Json 对象中何时包含键值。有人知道吗?谢谢

例如: A. {"context":{"abc":"123"} --> 是

B. {"context":{}} --> 否

请注意,我事先并不知道这种情况下的密钥。

2/ 还可以收集所有钥匙吗?

谢谢你。

sql json amazon-web-services amazon-redshift is-empty
1个回答
1
投票

我假设您使用的是AWS Athena,您可以使用json_extract来解析json字符串,然后使用

json_length
来检查json对象的键数是否大于0

SELECT
  dataset.name, dataset.data
FROM (
  SELECT 'A' AS name, '{"context":{"abc":"123"}}' AS data
  UNION ALL 
  SELECT 'B' , '{"context":{}}'
) as dataset
where json_length(json_extract(dataset.data, '$.context')) > 0
© www.soinside.com 2019 - 2024. All rights reserved.