我想使用 SQL 从包含 Snowflake 中的 JSON 的一列值创建两列。
说这个表叫做keywords_bids
然后有一个名为 keywords 的列,其中包含 JSON
关键字列中单元格中的示例 json:
row1: {"apple":0.1, "peach":0.2, "banana":0.1} row2: 类似的 JSON,等等....
input image
我想创建一个名为关键字的列,它是来自 JSON 的出价
输出将是:
关键字 |投标
'苹果' | 0.1
'桃' | 0.2
'香蕉'| 0.3
答案 0 :(得分:1)
首先,对于 JSON,您需要将单引号更改为双引号。
然后你只需要扁平化json来获取键和值:
with data as (
select parse_json('{"apple":0.1, "peach":0.2, "banana":0.1}') j
)
select k.key, k.value
from data, table(flatten(j)) k
;
答案 1 :(得分:0)
https://community.snowflake.com/s/article/Dynamically-extracting-JSON-using-LATERAL-FLATTEN
本文将演示使用 LATERAL FLATTEN 从 JSON 文档中提取信息的各种示例。提供了将其与 GET_PATH、UNPIVOT 和 SEQ 函数一起使用的示例。