Wie konvertieren von PostgreSQL 9.4 s jsonb Typ float

Ich versuche folgende Abfrage:

SELECT (json_data->'position'->'lat') + 1.0 AS lat FROM updates LIMIT 5;

(+1.0 ist nur da, um Kraft Konvertierung zu float. Meine eigentlichen Abfragen sind wesentlich komplexer, diese Abfrage ist nur ein Testfall für das problem.)

Bekomme ich die Fehlermeldung:

ERROR:  operator does not exist: jsonb + numeric

Wenn ich in explizites casting:

SELECT (json_data->'position'->'lat')::float + 1.0 AS lat FROM updates LIMIT 5;

dem Fehler wird:

ERROR:  operator does not exist: jsonb + double precesion

Ich verstehe, dass die meisten jsonb-Werte können nicht gewirkt werden, in schwebt, aber in diesem Fall weiß ich, dass die lats sind alle JSON-zahlen.

Gibt es eine Funktion die wirft jsonb Werte für floats (oder die return-Null-Werte für die uncastable)?

InformationsquelleAutor der Frage fadedbee | 2014-07-18

Schreibe einen Kommentar