PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Mesclando colunas JSON(B) de concatenação na consulta


No Postgres 9.5+ você pode mesclar JSONB assim:
select json1 || json2;

Ou, se for JSON, coagir para JSONB se necessário:
select json1::jsonb || json2::jsonb;

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

(Caso contrário, qualquer valor nulo em json1 ou json2 retorna uma linha vazia)

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

Parabéns a @MattZukowski por apontar isso em um comentário.