Di PostgreSQL Anda dapat menggunakan GREATEST
ekspresi:
SELECT GREATEST(date_1, date_2, date_3, date_4, date_5, date_6) AS max_date
...
Karena itu bukan SQL standar, mungkin tidak akan berfungsi di database lain.
Bagaimanapun, Anda dapat mengurangi jumlah perbandingan, sejak WHEN
kedua ekspresi CASE
pernyataan hanya diuji jika yang pertama tidak TRUE
:
CASE
WHEN date_1 >= date_2 AND date_1 >= date_3 AND date_1 >= date_4 AND date_1 >= date_5 AND date_1 >= date_6
THEN date_1
WHEN date_2 >= date_3 AND date_2 >= date_4 AND date_2 >= date_5 AND date_2 >= date_6
THEN date_2
WHEN date_3 >= date_4 AND date_3 >= date_5 AND date_3 >= date_6
THEN date_3
WHEN date_4 >= date_5 AND date_4 >= date_6
THEN date_4
WHEN date_5 >= date_6
THEN date_5
ELSE date_6
END
Saya tidak tahu apakah Anda menganggap itu lebih elegan, tetapi alih-alih AND
klausa Anda juga bisa menggunakan ALL
dengan VALUES
ekspresi:
WHEN date_1 >= ALL (VALUES (date_2), (date_3), (date_4), (date_5), (date_6))
THEN date_1
...