In Postgres 9.5+ kun je JSONB als volgt samenvoegen:
select json1 || json2;
Of, als het JSON is, dwing indien nodig tot JSONB:
select json1::jsonb || json2::jsonb;
Of:
select COALESCE(json1::jsonb||json2::jsonb, json1::jsonb, json2::jsonb);
(Anders, elke null-waarde in json1
of json2
geeft een lege rij terug)
Bijvoorbeeld:
select data || '{"foo":"bar"}'::jsonb from photos limit 1;
?column?
----------------------------------------------------------------------
{"foo": "bar", "preview_url": "https://unsplash.it/500/720/123"}
Een pluim voor @MattZukowski om hier in een opmerking op te wijzen.