PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Unione di colonne JSON(B) concatenate nella query

In Postgres 9.5+ puoi unire JSONB in ​​questo modo:

select json1 || json2;

Oppure, se è JSON, forza a JSONB se necessario:

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

Oppure:

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

(In caso contrario, qualsiasi valore null in json1 o json2 restituisce una riga vuota)

Ad esempio:

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

Complimenti a @MattZukowski per averlo fatto notare in un commento.