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.