2009年1月20日

[mysql 14717] Re: sum関数のバージョンによる動作の違い




nullなのに、0を返していたというのが事実なら、MySQL 3.23.55に問題が
あったのではないでしょうか?

nullの場合に、0としたいなら、coalesce関数を使うのが簡単だと思います。

select sum(coalesce(id,0)) from tbl1;


なお、coalesce関数は、主要なRDBMSで、同じ機能で実装されています。> Date: Tue, 20 Jan 2009 10:17:07 +0900> From: akiro@xxxxx> Subject: [mysql 14716] sum関数のバージョンによる動作の違い> To: ml@xxxxx> >  いつもお世話になっています。>  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@xxxxx> > _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/> > >
_________________________________________________________________
【倖田來未特集】新曲からライブ映像、独占インタビューなど倖田來未満載
http://music.jp.msn.com/m-site/

投稿者 xml-rpc : 2009年1月20日 10:25
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/81207
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。