Trong Postgres 9.5+, bạn có thể hợp nhất JSONB như thế này:
select json1 || json2;
Hoặc nếu đó là JSON, hãy cưỡng chế JSONB nếu cần:
select json1::jsonb || json2::jsonb;
Hoặc:
select COALESCE(json1::jsonb||json2::jsonb, json1::jsonb, json2::jsonb);
(Nếu không, bất kỳ giá trị null nào trong json1
hoặc json2
trả về một hàng trống)
Ví dụ:
select data || '{"foo":"bar"}'::jsonb from photos limit 1;
?column?
----------------------------------------------------------------------
{"foo": "bar", "preview_url": "https://unsplash.it/500/720/123"}
Kudo cho @MattZukowski vì đã chỉ ra điều này trong một nhận xét.