簡體   English   中英

從Presto的JSON列獲取特定值

[英]Get specific values from JSON column in Presto

我有一個JSON列的表points與行為之一:

{"0": 0.2, "1": 1.2, "2": 0.5, "15": 1.2, "20": 0.7}

我想獲取鍵"1""20" ,並將它們存儲為別名,例如查詢中的firstsecond 到目前為止,我所做的是:

SELECT points, k, v from rewards CROSS JOIN UNNEST(SPLIT_TO_MAP(points, ',', ':')) AS m(k,v) where name='John'

但是此查詢為我提供了k,v的所有行。如何僅選擇對應於“ 1”和“ 20”的那兩個值?

JSON_EXTRACT_SCALAR達到了目的。

JSON_EXTRACT_SCALAR(points, '$["1"]') AS first_value

JSON_EXTRACT_SCALAR(points, '$["20"]') AS second_value

暫無
暫無

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

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