Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

65
Vistas
Selección de datos dentro de JSON

Me gustaría extraer datos usando SQL en Postgres, pero me gustaría ingresar al resultado de JSON y solo extraer los datos que necesito.

Si escribo (en el estudio de Valentina):

 Select "data" from "cars"

La primera fila se parece a:

 [{"Model": "Golf", "Make": "VW", "Engine": "2.9"}, {"Model": "M3", "Make": "BMW", "Engine": "3.0"}]

Lo que me gustaría es simplemente:

Golf, M3 o "Golf", "M3"

Entonces también podría usar el mismo método para "Make" o "Engine"

Esencialmente, no quiero mis resultados en JSON.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Utilice json_array_elements() :

 with cars(data) as ( values ('[ {"Model": "Golf", "Make": "VW", "Engine": "2.9"}, {"Model": "M3", "Make": "BMW", "Engine": "3.0"} ]'::json) ) select elem->>'Model' as model, elem->>'Make' as make, elem->>'Engine' as engine from cars, lateral json_array_elements(data) elem model | make | engine -------+------+-------- Golf | VW | 2.9 M3 | BMW | 3.0 (2 rows)
over 4 years ago · Santiago Trujillo Denunciar

0

SELECT string_agg(x->>'Model', ',') FROM cars CROSS JOIN LATERAL jsonb_array_elements(data) x GROUP BY cars; ┌────────────┐ │ string_agg │ ├────────────┤ │ Golf,M3 │ └────────────┘ (1 row)
over 4 years ago · Santiago Trujillo Denunciar

0

Creo que también obtuve lo que quería (y lo derretí de la forma en que planeaba hacerlo) con:

 select obj->'Model' as model, obj->'Make' as make, obj->'Engine' as engine from data n, jsonb_array_elements(n.DATA) as obj

de lo anterior también puedo usar:

 select elem->>'Model' as model, elem->>'Make' as make , elem->>'Engine' as engine from cars, lateral jsonb_array_elements(data) elem;

¡Gracias por la ayuda!

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda