[前][次][番号順一覧][スレッド一覧]

mysql:14718

From: Hideki SUNADA <Hideki SUNADA <hideki@xxxxxxxxxx>>
Date: Tue, 20 Jan 2009 10:44:41 +0900
Subject: [mysql 14718] Re: sum関数のバージョンによる動作の違い

これじゃだめですか?

select sum(if(id is null, 0, id)) from tbl1;

idがnullの場合はゼロを返し、それ以外はidの値を返して
それをSumします。


On Tue, 20 Jan 2009 10:17:07 +0900
柴垣 <akiro@xxxxxxxxxx> wrote:

>  いつもお世話になっています。
>  mysqlを3.23から5.0に更新したときに、以下のトラブルに
> 見舞われました。
> 
> create table tbl1(id int);
> insert into tbl1 values(null);
> 
> としておいて、sumを取ると、
> select sum(id) from tbl1;
> 
> 3.23.55では0が返され、5.0.45ではnullが返されます。
> 
> これは周知のことなのかどうか、
> なにか別の違いから由来するものなのかどうか、
> また、nullを計算から除外(0として計算)するのに
> 簡単ないい方法があるのかどうか、
> 
> 教えていただければ助かります。
> 
> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
> 
>  柴垣  akiro@xxxxxxxxxx
> 
> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
> 



[前][次][番号順一覧][スレッド一覧]

     14716 2009-01-20 10:17 [柴垣 <akiro@xxxxxxxx] sum関数のバージョンによる動作の違い     
   @ 14717 2009-01-20 10:25 ┣[chuuken kenkou <ken_]                                       
->   14718 2009-01-20 10:44 ┣[Hideki SUNADA <hidek]                                       
     14719 2009-01-20 12:31 ┗[HIRATSUKA Sadao <hir]                                       
     14720 2009-01-20 13:28  ┗[柴垣 <akiro@xxxxxxxx]