Dans Postgres 9.5+, vous pouvez fusionner JSONB comme ceci :
select json1 || json2;
Ou, s'il s'agit de JSON, forcez JSONB si nécessaire :
select json1::jsonb || json2::jsonb;
Ou :
select COALESCE(json1::jsonb||json2::jsonb, json1::jsonb, json2::jsonb);
(Sinon, toute valeur nulle dans json1
ou json2
renvoie une ligne vide)
Par exemple :
select data || '{"foo":"bar"}'::jsonb from photos limit 1;
?column?
----------------------------------------------------------------------
{"foo": "bar", "preview_url": "https://unsplash.it/500/720/123"}
Félicitations à @MattZukowski pour l'avoir signalé dans un commentaire.