Di Postgres 9.5+ Anda dapat menggabungkan JSONB seperti ini:
select json1 || json2;
Atau, jika itu JSON, paksakan ke JSONB jika perlu:
select json1::jsonb || json2::jsonb;
Atau:
select COALESCE(json1::jsonb||json2::jsonb, json1::jsonb, json2::jsonb);
(Jika tidak, nilai nol apa pun di json1
atau json2
mengembalikan baris kosong)
Misalnya:
select data || '{"foo":"bar"}'::jsonb from photos limit 1;
?column?
----------------------------------------------------------------------
{"foo": "bar", "preview_url": "https://unsplash.it/500/720/123"}
Kudos to @MattZukowski untuk menunjukkan hal ini dalam komentar.