Reply to Re: needed: 1 + null = 1

Your name:

Reply:


Posted by Robert Klemme on 05/29/07 12:18

On 29.05.2007 14:06, M A Srinivas wrote:
> On May 29, 4:37 pm, i...@vanoordt.nl wrote:
>> Using coalesce is the same sort of solution as using isnull. It
>> doesn't behave as my requirements state. In particular, the result
>> will be 0 if all inputs are null. It is required that the result be
>> null.
>> Thanks anyway.
>
> No. Did you test
>
> Result will be null if all are null .
> since
> COALESCE(Col1, Col2, Col3) returns null and
> 0 + 0 + 0 + null is null
> COALESCE takes more arguments and ISNULL only two
>
> declare @a table (col1 int,col2 int,col3 int)
>
> insert into @a values (1,null,null)
> insert into @a values (null,2,null)
> insert into @a values (null,null,3)
> insert into @a values (1,2,null)
> insert into @a values (null,2,3)
> insert into @a values (1,null,3)
> insert into @a values (null,null,null)
>
> select COALESCE(Col1, 0) + COALESCE(Col2, 0) + COALESCE(Col3, 0) +
> COALESCE(Col1,
> Col2, Col3) from @a
>
>
> 2
> 4
> 6
> 4
> 7
> 5
> NULL

Now there is only the small issue that one of the column values is added
twice - and you do not know which one. Something like this is probably
better:

-- untested
SELECT CASE
WHEN COALESCE(col1, col2, col2) IS NULL
THEN NULL
ELSE
COALESCE(col1, 0) +
COALESCE(col2, 0) +
COALESCE(col3, 0)
END
....

Kind regards

robert

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация