sto cercando la seguente query:.Come convertire PostgreSQL 9.4 di tipo jsonb di galleggiare
SELECT (json_data->'position'->'lat') + 1.0 AS lat FROM updates LIMIT 5;
(Il 1,0 è solo lì per forzare la conversione di galleggiare mie query effettivi sono molto più complesse, questa query è solo un banco di prova per il problema)
ottengo l'errore:.
ERROR: operator does not exist: jsonb + numeric
Se aggiungo in fusione di esplicito:
SELECT (json_data->'position'->'lat')::float + 1.0 AS lat FROM updates LIMIT 5;
l'errore diventa:
ERROR: operator does not exist: jsonb + double precesion
ho capito che la maggior parte dei valori jsonb non possono essere gettati nel galleggianti, ma in questo caso so che il lat sono tutti i numeri di JSON.
Esiste una funzione che converte i valori jsonb in float (o restituisce NULL per l'uncastable)?
Non ci sono alcun 'try_cast' funzione di default in Postgres. Devi scriverli da solo. –