[英]How to parse this JSON file in Snowflake?
因此,我在存儲 JSON 數據的 Snowflake 表中有一個列,但該列是 varchar 數據類型。
JSON 看起來像這樣:
{
"FLAGS": [],
"BANNERS": {},
"TOOLS": {
"game.appConfig": {
"type": [
"small",
"normal",
"huge"
],
"flow": [
"control",
"noncontrol"
]
}
},
"PLATFORM": {}
}
我只想過濾 TOOLS 中的數據,並希望得到以下結果:
TOOLS_ID | 工具 |
---|---|
游戲.appConfig | 類型 |
游戲.appConfig | 流動 |
我怎樣才能做到這一點?
我假設 TOOL 可以有多個工具 ID,因此我編寫了以下查詢:
with mydata as ( select
'{
"FLAGS": [],
"BANNERS": {},
"TOOLS": {
"game.appConfig": {
"type": [
"small",
"normal",
"huge"
],
"flow": [
"control",
"noncontrol"
]
}
},
"PLATFORM": {}
}' as v1 )
select main.KEY TOOLS_ID, sub.KEY TOOLS
from mydata,
lateral flatten ( parse_json(v1):"TOOLS" ) main,
lateral flatten ( main.VALUE ) sub;
+----------------+-------+
| TOOLS_ID | TOOLS |
+----------------+-------+
| game.appConfig | flow |
| game.appConfig | type |
+----------------+-------+
假設列名是 C1,表名是 T1:
select a.t:"TOOLS":"game.appConfig"::string from (select
parse_json(to_variant(C1))t from T1) a
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.