mysql:477
From: Satoshi Koiwa <Satoshi Koiwa <koiwa@xxxxxxxxxx>>
Date: Sat, 26 Dec 98 18:54:24 +0900
Subject: [mysql 477] Re: クロス集計の方法
小岩です。 >mysqlでやる場合、decodeがないんで >select > if(地区コード = 1,1,if(地区コード= 2,2,0)) as 地区, > sum(売上金額) >>from 売上テーブル >group by 地区 これだと縦横にならないですよねー、スマートなのは間違いないですが。 >で、decode って、何なんでしょうか? >お教え下さい。m(_ _)m Oracle本には書いてあると思うんですが、 decode(Exp, A, B, C, D, Z) というように書きます。この関数を実行するとExpの結果がAだったらBが、Cだった らDが、それ以外だったらZを返します。Expは必須で、A以下は基本的には2個セット でいくつでも書けます(上限はあるんだろうけれど上限にあたったことはない)。A以 下が奇数個になった場合だけ、default値になります。偶数個で一連のセットの中に 該当する値がなかったらNULLが返る。 decode(県コ−ド, '01', '北海道', '02', '青森県', '03', '岩手県', '04', '宮城県', '13', '東京都 'それ以外の府県') とか、 decode(性別コ−ド, '1', '男', '2','女', '性別不明') とか、 decode(性別コ−ド, '1', '男', '女') とかという使い方や、 decode(県コ−ド, '01', decode(性別コ−ド, '1', 'えびす男', 'えびす女'), '12', decode(性別コ−ド, '1', 'あづま男', 'あづま女'), decode(性別コ−ド, '1', 'その他のおのこ', 'その他のお とめ') という感じの入れ子を重ねていく使い方なんかがあります。SELECT節でもWHERE節で もGROUP BY節でもどこでも書けるんで便利だけれど、物凄いものを書かれると解析 が大変。
-> 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]