1. ホーム
  2. sql

[解決済み】複数カラムのSQL MAX?

2022-03-24 06:57:36

質問

複数列の最大値のうち、1列につき1つの値を返すにはどうしたらよいですか。

テーブル名

[Number, Date1, Date2, Date3, Cost]

こんな感じで返して欲しい。

[Number, Most_Recent_Date, Cost]

クエリーは?

解決方法は?

これは古い回答で、いろいろと壊れています。

参照 https://stackoverflow.com/a/6871572/194653 は、より多くのupvotesを持ち、sql server 2008+で動作し、nullなどを処理します。

オリジナルだが問題のある回答 :

まあ、CASE文を使えばいいんだけどね。

SELECT
    CASE
        WHEN Date1 >= Date2 AND Date1 >= Date3 THEN Date1
        WHEN Date2 >= Date1 AND Date2 >= Date3 THEN Date2
        WHEN Date3 >= Date1 AND Date3 >= Date2 THEN Date3
        ELSE                                        Date1
    END AS MostRecentDate