- ベストアンサー
MAX値の取り方
selectの取得で以下のようなことを実現したいです。 環境は、DB2です。 A B C は、数値です。 SELECT MAX(A,B,C) FROM TABLE_NAME ご教授 願います。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ANo.2です。 もし、No.2の通り、各行の中の最大値が欲しいという質問だとすると、 CASE WHEN THEN ~~~END 句が使えます。 SELECT CASE WHEN (A >= B) AND (A >= C) THEN A WHEN (B >= A) AND (B >= C) THEN B WHEN (C >= A) AND (C >= B) THEN C END as "ANS" FROM TABLE_NAME
その他の回答 (2)
- PED02744
- ベストアンサー率40% (157/390)
やっぱり、意味がわかりません。。。 あるテーブルの中のカラム'A',カラム'B',カラム'C'の値を取得する 'A' 'B' 'C' ------------- 100 105 103 200 199 204 300 295 200 : : : このときの各行の最大値である'A'または'B'または'C'を求める・・・ということでしょうか? 'ANS' -------- 105 ←'B'の値 204 ←'C'の値 300 ←'A'の値 : こういうことですか?
- PED02744
- ベストアンサー率40% (157/390)
以下のようなことの意味がわかりません。 日本語でかきづらいようなら、テーブルとSELECTで取得したい結果を書いてください。 select max(a),max(b),max(c) from table_name では取れないということでしょうか?
補足
分かりずらく書いてしまい申し訳ありません。 返却値、a b c の中で、最大の値のみを取得したい と いうことです。 たとえば、 a = 1 , b = 2 , c = 3 select max(a,b,c) from table_name ans. 3 と いう意味です。 a b cの値を取得してからプログラム(java)で比較しても良いのですが、 SQLのみで答えが得られればと思い質問させて頂きました。
お礼
まさしくそれです。 なるほど、このように書くのですね。 ありがとう御座いました。