如何从 SQL 中提取 JSON 值,其中列值有时为空
Posted
技术标签:
【中文标题】如何从 SQL 中提取 JSON 值,其中列值有时为空【英文标题】:How to extract JSON value from SQL where where column values sometimes empty 【发布时间】:2021-05-21 18:12:12 【问题描述】:我有一个表,其列 'sometimesjson' 有时包含这样的值:
["id":111,"nam":"PROVIDER_this_one","qty":null]
有时该字段完全为空,不仅仅是“[]”,而是完全为空/空字段。
所以我尝试用这个返回“PROVIDER_this_one”,但是错误...
CASE WHEN JSON_VALID(sometimesjson)
THEN
JSON_EXTRACT(sometimesjson, '$.nam')
AS 'FROMJSON'
ELSE null
有什么想法吗?
【问题讨论】:
错误,错误,我没有看到错误也许你可以和我们分享你的 我想通了。我猜是因为 json 实际上是数组,所以我为该表字段中的数组中的每个值调用“nam”的正确方法是...... '$[*].nam' 而不是 '$.nam' 它是现在工作。 【参考方案1】:我想通了。我猜是因为 json 值实际上是一个数组,所以我为该表字段值数组中的每个值调用“nam”的正确方法是...... '$[*].nam'而不是 '$.nam' 它现在正在使用...
CASE WHEN JSON_VALID(sometimesjson)
THEN
JSON_EXTRACT(sometimesjson, '$[*].nam')
AS 'FROMJSON'
ELSE null
【讨论】:
以上是关于如何从 SQL 中提取 JSON 值,其中列值有时为空的主要内容,如果未能解决你的问题,请参考以下文章
如何从 SQL 中的列值中提取特定部分(Redshift 平台)