On Sun, Dec 18, 2016 at 6:08 PM, John R Pierce <pie...@hogranch.com> wrote:
> On 12/18/2016 2:52 PM, Jong-won Choi wrote: > >> >> I have a NULL-able JSONB type column and want to perform upsert, >> concatenating with the existing value. >> > > NULL does not mean 'NO' value in SQL it means UNKNOWN value. sort of like > the 'indeterminate' in math. > > maybe you want a NOT NULL json value that you set to '' or something when > its empty. > > > -- > john r pierce, recycling bits in santa cruz > > > > > -- > Sent via pgsql-general mailing list (pgsql-general@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general > Have you tried using CASE? INSERT INTO Fan (oid, campaigns, facts) VALUES (189,'{"campaign-id": "12345"}','{"attended": false}') ON CONFLICT (oid) DO UPDATE SET campaigns = EXCLUDED.campaigns, CASE WHEN fan.facts is NULL THEN facts = EXCLUDED.facts ELSE facts = fan.facts || EXCLUDED.facts END RETURNING *; -- *Melvin Davidson* I reserve the right to fantasize. Whether or not you wish to share my fantasy is entirely up to you.