PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Fusion de colonnes JSON(B) de concaténation dans une requête

Dans Postgres 9.5+, vous pouvez fusionner JSONB comme ceci :

select json1 || json2;

Ou, s'il s'agit de JSON, forcez JSONB si nécessaire :

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

Ou :

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

(Sinon, toute valeur nulle dans json1 ou json2 renvoie une ligne vide)

Par exemple :

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

Félicitations à @MattZukowski pour l'avoir signalé dans un commentaire.