From: | David Salisbury <salisbury(at)globe(dot)gov> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: default value returned from sql stmt |
Date: | 2012-03-29 22:56:36 |
Message-ID: | 4F74E8A4.1030306@globe.gov |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 3/29/12 4:26 PM, Chris Angelico wrote:
> On Fri, Mar 30, 2012 at 9:16 AM, David Salisbury<salisbury(at)globe(dot)gov> wrote:
>> development=# select coalesce(anum,100) from t1 where anum = 4;
>
> What you have there is rather different from COALESCE, as you're
> looking for a case where the row completely doesn't exist. But you can
> fudge it with an outer join.
>
> Untested code:
>
> WITH rowid AS (select 4 as anum) SELECT coalesce(anum,100) FROM rowid
> LEFT JOIN t1 ON rowid.anum=t1.anum
>
> However, you may simply want a WHERE [NOT] EXISTS predicate. There may
> be other ways of achieving your goal, too.
Thanks guys! In fact I did see the difference between no row and a null
value within a row. But it seemed there must be a way that I was missing.
It does look though that plpg is the way to go, otherwise it just seems
to obfuscate the code, or have other possible consequences.
-ds
From | Date | Subject | |
---|---|---|---|
Next Message | Toby Corkindale | 2012-03-29 23:32:03 | Re: How to tell if server is in backup mode? |
Previous Message | Pavel Stehule | 2012-03-29 22:28:09 | Re: default value returned from sql stmt |