微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

变体数组中元素内的数组

如何解决变体数组中元素内的数组

如何从存储在SNowflake中的变量列中的数组中获取数据。我不在乎是新表,视图还是查询。第二个类型为varchar(256)的列包含唯一的ID。 如果您可以帮助我读取“已确认”数据和“ editorIds”数据,那么我可能可以从那里获取数据。非常感谢!

输出示例为

UniqueID    ConfirmationID     EditorID
u3kd9       xxxx-436a-a2d7     nupd
u3kd9       xxxx-436a-a2d7     9l34c
R3nDo       xxxx-436a-a3e4     5rnj
yP48a       xxxx-436a-a477     jTpz8
yP48a       xxxx-436a-a477     nupd
    
[
  {
    "confirmed": {
      "Confirmation": "Entry ID=xxxx-436a-a2d7-3525158332f0: Confirmed order submitted.","ConfirmationID": "xxxx-436a-a2d7-3525158332f0","ConfirmedOrders": 1,"Received": "8/29/2019 4:31:11 PM Central Time"
    },"editorIds": [
      "xxsJYgWDENLoX","JR9bWcGwbaymm3a8v","JxncJrdpeFJeWsTbT"
    ],"id": "xxxxx5AvGgeSHy8Ms6Ytyc-1","messages": [],"orderjson": {
      "EntryID": "xxxxx5AvGgeSHy8Ms6Ytyc-1","Orders": [
        {
          "DropShipFlag": 1,"FromAddressValue": 1,"OrderAttributes": [
            {
              "AttributeUID": 548
            },{
              "AttributeUID": 553
            },{
              "AttributeUID": 2418
            }
          ],"OrderItems": [
            {
              "EditorId": "aC3f5HsJYgWDENLoX","ItemAssets": [
                {
                  "AssetPath": "https://xxxx573043eac521.png","DP2NodeID": "10000","ImageHash": "000000000000000FFFFFFFFFFFFFFFFF","ImageRotation": 0,"OffsetX": 50,"OffsetY": 50,"PrintedFileName": "aC3f5HsJYgWDENLoX-10000","X": 50,"Y": 52.03909266409266,"ZoomX": 100,"ZoomY": 93.75
                }
              ],"ItemAttributes": [
                {
                  "AttributeUID": 2105
                },{
                  "AttributeUID": 125
                }
              ],"ItemBookAttribute": null,"ProductUID": 52,"Quantity": 1
            }
          ],"SendNotificationEmailToAccount": true,"SequenceNumber": 1,"ShipToAddress": {
            "Addr1": "Addr1","Addr2": "0","City": "City","Country": "US","Name": "Name","State": "ST","Zip": "00000"
          }
        }
      ]
    },"orderNumber": null,"status": "order_placed","submitted": {
      "Account": "350000","ConfirmationID": "xxxxx-436a-a2d7-3525158332f0","EntryID": "xxxxx-5AvGgeSHy8Ms6Ytyc-1","Key": "D83590AFF0CC0000B54B","NumberOfOrders": 1,"Orders": [
        {
          "LineItems": [],"Note": "","Products": [
            {
              "Price": "00.30","ProductDescription": "xxxxxint 8x10","Quantity": 1
            },{
              "Price": "00.40","ProductDescription": "xxxxxut Black 8x10",{
              "Price": "00.50","ProductDescription": "xxxxx"
            },"ProductDescription": "xxxscount","SequenceNumber": "1","SubTotal": "00.70","Tax": "1.01","Total": "00.71"
        }
      ],"Received": "8/29/2019 4:31:10 PM Central Time"
    },"tracking": null,"updatedOn": 1.598736670503000e+12
  }
]

解决方法

因此,假设数据在表var的列x中,这就是我查询确切的JSON的方式:

SELECT x.var[0]:confirmed:ConfirmationID::varchar as ConfirmationID,f.value::varchar as EditorID
FROM x,LATERAL FLATTEN(input => var[0]:editorIds) f
;

由于示例输出与您提供的JSON不匹配,因此我认为这就是您所需要的。

此外,请注意,您的JSON包含外部[],该外部[]表示整个JSON字符串都在数组内部。这就是在我的查询中使用var[0]的原因。如果该数组中有多个记录,则应将其删除。通常,应该排除那些记录,而应将每个记录分别加载到表中。我不确定您是否可以进行更改,所以我只想记录一下。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。