在雪花 SQL

时间:2021-07-27 01:54:58

标签: json snowflake-cloud-data-platform

我想使用 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

2 个答案:

答案 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
;

enter image description here

答案 1 :(得分:0)

https://community.snowflake.com/s/article/Dynamically-extracting-JSON-using-LATERAL-FLATTEN

本文将演示使用 LATERAL FLATTEN 从 JSON 文档中提取信息的各种示例。提供了将其与 GET_PATH、UNPIVOT 和 SEQ 函数一起使用的示例。