Re: default value for select?

Поиск
Список
Период
Сортировка
От Tony Wasson
Тема Re: default value for select?
Дата
Msg-id 6d8daee30505091030f5c7828@mail.gmail.com
обсуждение исходный текст
Ответ на default value for select?  ("Mark Fenbers" <Mark.Fenbers@noaa.gov>)
Список pgsql-sql
On 5/9/05, Mark Fenbers <Mark.Fenbers@noaa.gov> wrote:
>  I want to update a column in myTable.  The value this column is set to
> depends on a nested select statement which sometimes returns 0 rows instead
> of 1.  This is a problem since the column I'm trying to update is set to
> refuse nulls.  Here's a sample:
>
>  update myTable set myColumn = (Select altColumn from altTable where
> altColumn != 'XXX' limit 1) where myColumn = 'XXX';
>
>  MyColumn cannot accept nulls, but sometimes "Select altColumn ..." returns
> 0 rows, and thus, the query fails.
>
>  Is there a way to set a default value to be inserted into myColumn if and
> when "select altColumn ..." returns zero rows?
>
>  Mark

Mark,
You can work around this by using a CASE statement. In this case, test
for a NULL from your subquery. This is not elegant at all, but it
should do what you are wanting.

update myTable set myColumn = (CASE WHEN (Select altColumn from altTable where  altColumn != 'XXX'
limit 1) IS NULL   THEN 'some default value' ELSE (Select altColumn from altTable where  altColumn != 'XXX' limit 1)
END)
where myColumn = 'XXX';

Hope this helps...
Tony


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

Предыдущее
От: "Keith Worthington"
Дата:
Сообщение: Re: default value for select?
Следующее
От: Philip Hallstrom
Дата:
Сообщение: Re: default value for select?