W Postgresie 9.5+ możesz połączyć JSONB w ten sposób:
select json1 || json2;
Lub, jeśli to JSON, w razie potrzeby wymuś JSONB:
select json1::jsonb || json2::jsonb;
Lub:
select COALESCE(json1::jsonb||json2::jsonb, json1::jsonb, json2::jsonb);
(W przeciwnym razie dowolna wartość null w json1
lub json2
zwraca pusty wiersz)
Na przykład:
select data || '{"foo":"bar"}'::jsonb from photos limit 1;
?column?
----------------------------------------------------------------------
{"foo": "bar", "preview_url": "https://unsplash.it/500/720/123"}
Uznanie dla @MattZukowskiego za wskazanie tego w komentarzu.