es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Valores JSON de objetos dentro de un arreglo

Tengo una columna JSON en mi base de datos PostgreSQL (v.10).
Puede verse así:

[{"_destroy": false, "gruppe_id": "verwalter"}, {"_destroy": "", "gruppe_id": "budget_nur_anzeigen"}]

Solo deseo obtener los valores de los elementos gruppe_id concatenados en una nueva columna así:

Gruppe_ID
verwalter, budget_nur_anzeigen

Enlace: http://sqlfiddle.com/#!15/71ab9/1

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para lograr esto, se puede utilizar la función jsonb_array_elements para convertir el array JSON en un conjunto de filas, y luego agregar los valores de los elementos gruppe_id utilizando la función string_agg. Aquí hay un ejemplo de consulta:

    SELECT string_agg(value->>'gruppe_id', ', ') AS Gruppe_ID
    FROM mytable, jsonb_array_elements(jsoncolumn) AS value;
    

    Esto generará una nueva columna llamada Gruppe_ID con los valores concatenados de los elementos gruppe_id. Se puede reemplazar “mytable” con el nombre de la tabla y “jsoncolumn” con el nombre de la columna JSON.

    Nota: Esta consulta asume que los elementos JSON siempre tienen una clave “gruppe_id”. Si existe la posibilidad de que algunos elementos no tengan esta clave, es posible que deba agregar una expresión condicional para manejar esos casos.

Comments are closed.