mysql:480
From: 民斗 <民斗 <tommy@xxxxxxxxxx>>
Date: Mon, 28 Dec 1998 09:49:47 +0900
Subject: [mysql 480] Re: クロス集計の方法
民斗です。 元々のクロス集計というのは良く知りませんが、 [Subject: [mysql 477] Re: クロス集計の方法] [Date: Sat, 26 Dec 98 18:54:24 +0900 From:Satoshi Koiwa] > Oracle本には書いてあると思うんですが、 > decode(Exp, A, B, C, D, Z) > というように書きます。この関数を実行するとExpの結果がAだったらBが、Cだった > らDが、それ以外だったらZを返します。Expは必須で、A以下は基本的には2個セット > でいくつでも書けます(上限はあるんだろうけれど上限にあたったことはない)。A以 > 下が奇数個になった場合だけ、default値になります。偶数個で一連のセットの中に > 該当する値がなかったらNULLが返る。 この機能なら、MySQL では if を使うより、ELT と FIELD を使った方が 読みやすいかもしれません。 > decode(県コ−ド, '01', '北海道', > '02', '青森県', > '03', '岩手県', > '04', '宮城県', > '13', '東京都 > 'それ以外の府県') ELT(FIELD(県コード, '01, '02', '03', '04', '13'), '北海道', '青森県', '岩手県', '宮城県', '東京都') > decode(性別コ−ド, '1', '男', '2','女', '性別不明') > とか、 > decode(性別コ−ド, '1', '男', '女') ELT(性別コード, '男', '女') リスト内に無い場合は FIELD は 0 を、ELT は NULL を返すので、 IFNULL(ELT(性別コード, '男', '女'), '性別不明') とかもできます。 -- 民斗 <tommy@xxxxxxxxxx>
477 1998-12-26 18:54 [Satoshi Koiwa <koiwa] Re: クロス集計の方法 478 1998-12-27 01:12 ┣[<endot@xxxxxxxxxx> ] 479 1998-12-28 07:44 ┣[Tamon Nomura <tamon@] -> 480 1998-12-28 09:49 ┗[民斗 <tommy@xxxxxxxx]