V Postgres 9.5+ můžete JSONB sloučit takto:
select json1 || json2;
Nebo, pokud je to JSON, v případě potřeby vynucení na JSONB:
select json1::jsonb || json2::jsonb;
Nebo:
select COALESCE(json1::jsonb||json2::jsonb, json1::jsonb, json2::jsonb);
(V opačném případě jakákoli nulová hodnota v json1
nebo json2
vrátí prázdný řádek)
Například:
select data || '{"foo":"bar"}'::jsonb from photos limit 1;
?column?
----------------------------------------------------------------------
{"foo": "bar", "preview_url": "https://unsplash.it/500/720/123"}
Děkujeme @MattZukowski za to, že na to poukázal v komentáři.