PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Zusammenführen von verkettenden JSON(B)-Spalten in der Abfrage

In Postgres 9.5+ können Sie JSONB wie folgt zusammenführen:

select json1 || json2;

Oder, wenn es sich um JSON handelt, erzwingen Sie bei Bedarf JSONB:

select json1::jsonb || json2::jsonb;

Oder:

select COALESCE(json1::jsonb||json2::jsonb, json1::jsonb, json2::jsonb);

(Andernfalls wird jeder Nullwert in json1 oder json2 gibt eine leere Zeile zurück)

Zum Beispiel:

select data || '{"foo":"bar"}'::jsonb from photos limit 1;
                               ?column?
----------------------------------------------------------------------
 {"foo": "bar", "preview_url": "https://unsplash.it/500/720/123"}

Kudos an @MattZukowski für den Hinweis in einem Kommentar.