I Postgres 9.5+ kan du slå samman JSONB så här:
select json1 || json2;
Eller, om det är JSON, tvinga till JSONB om det behövs:
select json1::jsonb || json2::jsonb;
Eller:
select COALESCE(json1::jsonb||json2::jsonb, json1::jsonb, json2::jsonb);
(Annars kan valfritt nullvärde i json1
eller json2
returnerar en tom rad)
Till exempel:
select data || '{"foo":"bar"}'::jsonb from photos limit 1;
?column?
----------------------------------------------------------------------
{"foo": "bar", "preview_url": "https://unsplash.it/500/720/123"}
Kudos till @MattZukowski för att du påpekade detta i en kommentar.