sql >> Base de Datos >  >> RDS >> PostgreSQL

Fusionar columnas JSON (B) concatenadas en la consulta

En Postgres 9.5+ puede fusionar JSONB así:

select json1 || json2;

O, si es JSON, forzar a JSONB si es necesario:

select json1::jsonb || json2::jsonb;

O:

select COALESCE(json1::jsonb||json2::jsonb, json1::jsonb, json2::jsonb);

(De lo contrario, cualquier valor nulo en json1 o json2 devuelve una fila vacía)

Por ejemplo:

select data || '{"foo":"bar"}'::jsonb from photos limit 1;
                               ?column?
----------------------------------------------------------------------
 {"foo": "bar", "preview_url": "https://unsplash.it/500/720/123"}

Felicitaciones a @MattZukowski por señalar esto en un comentario.