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
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:
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.