"name": "-6ren">
gpt4 book ai didi

sql - 使用 Snowflake SQL 解析 JSON

转载 作者:行者123 更新时间:2023-12-05 00:30:59 25 4
gpt4 key购买 nike

我有一个以奇怪方式编写的 JSON 对象。

> {"custom": [ { "name": "addressIdNum", "valueNum": 12345678},  {
> "name": "cancelledDateAt", "valueAt": "2017-02-30T01:43:04.000Z" }] }

不知道如何解析这样的东西。键是 addressIdNum 和 cancelledDateAt,值分别是 12345678 和 2017-02-30T01:43:04.000Z。

如何使用 Snowflake SQL 解析它?

感谢你的帮助!

最好的事物,
普雷特·拉杰迪奥

最佳答案

如果您的输入始终采用这种形式(数组中的两个元素,同一元素中具有相同的字段),您可以组合 PARSE_JSON 函数和 path access

试试这个:

with input as (
select parse_json(
'{"custom": [ { "name": "addressIdNum", "valueNum": 12345678}, {"name": "cancelledDateAt", "valueAt": "2017-02-30T01:43:04.000Z" }] }')
as json)
select json:custom[0].valueNum::integer, json:custom[1].valueAt::timestamp from input;
----------------------------------+-----------------------------------+
JSON:CUSTOM[0].VALUENUM::INTEGER | JSON:CUSTOM[1].VALUEAT::TIMESTAMP |
----------------------------------+-----------------------------------+
12345678 | 2017-03-01 17:43:04 |
----------------------------------+-----------------------------------+

但是,如果您的数据结构可能不同(例如,数组中的元素可能具有不同的顺序),最好在 Snowflake 中编写 JavaScript UDF 以将这些杂乱的数据转换为更简单的数据。

关于sql - 使用 Snowflake SQL 解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52046003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com