Re: Default value if query returns 0 rows? - Mailing list pgsql-general

From Christian Mangold
Subject Re: Default value if query returns 0 rows?
Date
Msg-id 414B08A9.3090904@man-it.at
Whole thread Raw
In response to Default value if query returns 0 rows?  (Lars Kellogg-Stedman <lars@oddbit.com>)
List pgsql-general
Hi,

I think

select id from
(select id from map where name like 'foo'
  union
  select -1 as id order by id desc) a LIMIT 1

should do it in the case id >= 0 for existing names.

    -Christian



Lars Kellogg-Stedman schrieb:
> Hello,
>
> I have a simple two-column table mapping names to ids.  I'd like to write a
> select statement that will return a default value if a given name isn't
> found in the table.  That is, I want something equivalent to the following
> pseudocode:
>
>   if exists (select 1 from map where name = 'foo') then
>     select id from map where name = 'foo'
>   else
>     select -1
>   end if
>
> I think I can see how to do this by writing a pl/pgsql function, but I'm
> curious if it's possible to do this completely as part of a select
> statement.  I've toyed with CASE expressions, but the fact that a missing
> value returns 0 rows continues to foil me.
>
> Thanks,
>
> -- Lars
>


pgsql-general by date:

Previous
From: Barry S
Date:
Subject: Re: psql + autocommit
Next
From: Björn Lundin
Date:
Subject: Re: Postgresql <--> webservices?