人気ブログランキング |
<< 【NEWS】2歳までのテレビ控... 【NEWS】Macの社長がMc... >>

複数カラムの最大値を取得するSQL



今日仕事で、DBからデータを検索しなくちゃいけなかったん
だけど、複数のカラムのうち最大の値を取得するのを1本のSQL
で簡単に出来ないかな?って考えた。

簡単な例でいくと、カラム col_a, col_b, col_c とある
tableがあって



col_a col_b col_c
----- ------ ------
4 2 1
1 5 0
1 1 0


だとする。
これを1本のSQLで、各Row毎のcol_a, col_b, col_c の
最大値をとりたい。
期待する結果はこんな感じ。


4
5
1



Excelだと =max(a1,b1,c1) みたいに簡単。

私はSybaseを使っているので、


select
case when col_a >= col_b then
case when col_c >= col_a then col_c
else col_a
end
else case when col_c >= col_b then col_c
else col_b
end
end
from table_x



こうなるのかな?
ここで検査するカラムの数が3個ならいいけど、10個だとキツイ。
Stored Procedureかなんか作って、Loopでまわすしかないのかな?

結局、Excelにデータを落して Excelの関数でやりましたけど‥
by crab2003 | 2004-02-06 19:43 | 仕事・会社のこと
<< 【NEWS】2歳までのテレビ控... 【NEWS】Macの社長がMc... >>