sql >> Databáze >  >> RDS >> PostgreSQL

Sloučení zřetězení sloupců JSON(B) v dotazu

V Postgres 9.5+ můžete JSONB sloučit takto:

select json1 || json2;

Nebo, pokud je to JSON, v případě potřeby vynucení na JSONB:

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

Nebo:

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

(V opačném případě jakákoli nulová hodnota v json1 nebo json2 vrátí prázdný řádek)

Například:

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

Děkujeme @MattZukowski za to, že na to poukázal v komentáři.



  1. Je zobrazení rychlejší než jednoduchý dotaz?

  2. Aktualizace Salesforce z Oracle®

  3. sp_executesql je pomalý s parametry

  4. Chyba serveru SQL:Řetězec nebo binární data by byla zkrácena