Cómo obtener datos de Json a PostgreSQL de múltiples columnas

Oct 05 2020

Quiero extraer muchos objetos (no todos los objetos) en JSON pero no quiero escribir para cada cosa como esta:

Select *,  
metrics::json ->> 'spend',
metrics::json ->> 'impressions',
metrics::json ->> 'clicks'
from t1

Aquí mi DEMO muestra datos reales y casos, cómo extraer a múltiples columnas y convertirlos al tipo de datos exactos (flotante, entero)

Remito esta pregunta , ¿puedo usar json_to_recordpara este u otro método y cómo?

Respuestas

1 BlueStar Oct 06 2020 at 05:44

Puede especificar las columnas que desee en la estructura de devolución. Por lo tanto, si solo le interesan los "gastos" y las "impresiones", puede hacer

SELECT x.*
FROM t1, json_to_record(t1.metrics) 
AS x(spend numeric, impressions int);