• ベストアンサー

MAX値の取り方

selectの取得で以下のようなことを実現したいです。 環境は、DB2です。 A B C は、数値です。 SELECT MAX(A,B,C) FROM TABLE_NAME ご教授 願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • PED02744
  • ベストアンサー率40% (157/390)
回答No.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

resolute
質問者

お礼

まさしくそれです。 なるほど、このように書くのですね。 ありがとう御座いました。

その他の回答 (2)

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.2

やっぱり、意味がわかりません。。。 あるテーブルの中のカラム'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)
回答No.1

以下のようなことの意味がわかりません。 日本語でかきづらいようなら、テーブルとSELECTで取得したい結果を書いてください。 select max(a),max(b),max(c) from table_name では取れないということでしょうか?

resolute
質問者

補足

分かりずらく書いてしまい申し訳ありません。 返却値、a b c の中で、最大の値のみを取得したい と いうことです。 たとえば、 a = 1 , b = 2 , c = 3 select max(a,b,c) from table_name ans. 3 と いう意味です。 a b cの値を取得してからプログラム(java)で比較しても良いのですが、 SQLのみで答えが得られればと思い質問させて頂きました。