簡體   English   中英

雪花 SQL:如何使用 JSON 對象循環遍歷數組,以找到符合條件的項目

[英]Snowflake SQL: How to loop through array with JSON objects, to find item that meets condition

打破我的頭。 在雪花中,我的字段city_info看起來像(3 個樣本記錄)

[{"name": "age", "content": 35}, {"name": "city", "content": "Chicago"}]
[{"name": "age", "content": 20}, {"name": "city", "content": "Boston"}]
[{"name": "city", "content": "New York"}, {"name": "age", "content": 42}]

我嘗試從中提取列city

Chicago
Boston
New York

我試圖把它弄平

select *
from lateral flatten(input =>
  select city_info::VARIANT as event
  from data
)

從那里我可以得出該值,但這僅允許我為 1 行執行此操作(因此我必須添加沒有意義的limit 1 ,因為我的所有行都需要此)。

如果我嘗試對 3 行執行此操作,它會告訴我subquery returns more than one row.

任何幫助表示贊賞! 克里斯

你可以把它寫成:

SELECT value:content::string AS city_name
FROM tab,
LATERAL FLATTEN(input => tab.city_info)
WHERE value:name::string = 'city'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM