In Postgres 9.5+ können Sie JSONB wie folgt zusammenführen:
select json1 || json2;
Oder, wenn es sich um JSON handelt, erzwingen Sie bei Bedarf JSONB:
select json1::jsonb || json2::jsonb;
Oder:
select COALESCE(json1::jsonb||json2::jsonb, json1::jsonb, json2::jsonb);
(Andernfalls wird jeder Nullwert in json1
oder json2
gibt eine leere Zeile zurück)
Zum Beispiel:
select data || '{"foo":"bar"}'::jsonb from photos limit 1;
?column?
----------------------------------------------------------------------
{"foo": "bar", "preview_url": "https://unsplash.it/500/720/123"}
Kudos an @MattZukowski für den Hinweis in einem Kommentar.