Default value if query returns 0 rows?

Поиск
Список
Период
Сортировка
От Lars Kellogg-Stedman
Тема Default value if query returns 0 rows?
Дата
Msg-id Pine.LNX.4.44.0409171056390.8060-100000@wolery.deas.harvard.edu
обсуждение исходный текст
Ответы Re: Default value if query returns 0 rows?  (Bruno Wolff III <bruno@wolff.to>)
Re: Default value if query returns 0 rows?  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Default value if query returns 0 rows?  (Christian Mangold <christian.mangold@man-it.at>)
Список pgsql-general
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

--
Lars Kellogg-Stedman <lars@oddbit.com>



В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Converting varchar() to text
Следующее
От: Bruno Wolff III
Дата:
Сообщение: Re: Default value if query returns 0 rows?