2017-06-27 4 views
0

Ich habe eine Tabelle mit einer JSON Spalte points mit einer der Zeilen wie:Erhalten Sie spezifische Werte von JSON Spalte in Presto

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

Ich möchte die Werte für Schlüssel "1" und "20" und sie als eine bekommen Alias ​​wie first und second in einer Abfrage. Was ich bis jetzt getan ist:

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

Aber diese Abfrage gibt mir alle Zeilen von k, v Wie kann ich nur die zwei Werte auswählen entsprechend „1“ und „20“.?

Antwort

1

JSON_EXTRACT_SCALAR hat den Trick gemacht.

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

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

Verwandte Themen