【问题标题】:Retrieving data from JSON-Object using SQL (snowflake)使用 SQL(雪花)从 JSON-Object 检索数据
【发布时间】:2022-08-04 20:51:09
【问题描述】:

我从 api 接收数据。数据如下所示:

\'displayValues\': {
\'mobDeviceTypeId\': {
    \'0\': \'Unknown\',
    \'2\': \'Smart Phone\',
    \'4\': \'Tablet\',
    \'-1\': \'Name is not available (-1)\',
    \'-7\': \'NA\'
}

}

我想使用 SQL 将“mobDeviceTypeId”的键值对存储在具有两列(id、设备)的表中。与其他 JSON 对象相比,我的问题是键不同。因此,例如:

SELECT $1:\"adSizeId\":\"10\"
FROM <table> 

不会帮助我。由于我使用雪花,我也尝试过使用 flatten 功能,但没有得到预期的结果。

我将非常感谢提示和可能的解决方案!

谢谢!

    标签: snowflake-cloud-data-platform


    【解决方案1】:
    with j(v) as (
      select parse_json('
      {"displayValues": {
          "mobDeviceTypeId": {
              "0": "Unknown",
              "2": "Smart Phone",
              "4": "Tablet",
              "-1": "Name is not available (-1)",
              "-7": "NA"
          }
      }}')
    )
    select key::integer as id, value::varchar as device
    from j, lateral flatten(input => v:displayValues:mobDeviceTypeId);
    
    ID DEVICE
    -1 Name is not available (-1)
    -7 NA
    0 Unknown
    2 Smart Phone
    4 Tablet

    【讨论】:

      猜你喜欢
      • 2020-07-30
      • 2021-07-11
      • 2020-12-01
      • 2021-07-07
      • 2021-09-08
      • 1970-01-01
      • 2021-07-23
      • 1970-01-01
      • 2019-08-25
      相关资源
      最近更新 更多