我試圖選擇在“員工”中找到的“員工”中有“照片”的所有部分。如果他們沒有“照片”,我不想選擇此部分。有沒有辦法做到這一點?我在 SNOWFLAKE 中使用 SQL。
例如,我有這個 JSON:
{
"employees": {
"employee": [
{
"id": "1",
"firstName": "Tom",
"lastName": "Cruise",
"photo": "https://pbs.twimg.com/profile_images/735509975649378305/B81JwLT7.jpg"
},
{
"id": "2",
"firstName": "Maria",
"lastName": "Sharapova"
},
{
"id": "3",
"firstName": "James",
"lastName": "Bond"
}
]
}
}
由于最后兩個沒有“PHOTO”,我不想要這個回報。所以對于上面的,它應該只回傳:
{
"id": "1",
"firstName": "Tom",
"lastName": "Cruise",
"photo": "https://pbs.twimg.com/profile_images/735509975649378305/B81JwLT7.jpg"
}
uj5u.com熱心網友回復:
SELECT e AS json
FROM data_table t,
LATERAL FLATTEN(input=>t.json:employees:employee) e,
WHERE e.value:photo IS NOT NULL;
uj5u.com熱心網友回復:
您可以考慮選項 4。對于獲得類似結果的更動態方式,其中元素的位置不是確定性的,具有 unpivot 功能的橫向展平可以很方便,在下面的文章中:https : //community.snowflake.com/ s/article/Dynamically-extracting-JSON-using-LATERAL-FLATTEN
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/322837.html
