I Postgres 9.5+ kan du flette JSONB sådan her:
select json1 || json2;
Eller, hvis det er JSON, tving til JSONB om nødvendigt:
select json1::jsonb || json2::jsonb;
Eller:
select COALESCE(json1::jsonb||json2::jsonb, json1::jsonb, json2::jsonb);
(Ellers en hvilken som helst null-værdi i json1
eller json2
returnerer en tom række)
For eksempel:
select data || '{"foo":"bar"}'::jsonb from photos limit 1;
?column?
----------------------------------------------------------------------
{"foo": "bar", "preview_url": "https://unsplash.it/500/720/123"}
Kudos til @MattZukowski for at påpege dette i en kommentar.