Jawaban:
Gunakan TERBESAR ()
Misalnya:
SELECT GREATEST(2,1);
Catatan: Kapan pun jika ada nilai tunggal yang mengandung nol pada waktu itu, fungsi ini selalu mengembalikan nol (Terima kasih kepada pengguna @ sanghavi7)
GREATEST
sehingga saya bisa mendapatkan nilai untuk kolom cirtain
select greatest(date1, ifnull(date2, "0000-00-00 00.00:00")) from table1 where date2 is null;
akan membuat Anda berkencan1.
GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
Untuk mendapatkan nilai maksimum kolom di seluruh rangkaian baris:
SELECT MAX(column1) FROM table; -- expect one result
Untuk mendapatkan nilai maksimum dari serangkaian kolom, literal, atau variabel untuk setiap baris:
SELECT GREATEST(column1, 1, 0, @val) FROM table; -- expect many results
GREATEST
. Nilai nol apa pun akan menyebabkan fungsi mengembalikan nol. Untuk mencegahnya, Anda bisa melakukannyaGREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
Anda dapat menggunakan fungsi TERBESAR dengan bidang yang tidak dapat dibatalkan. Jika salah satu dari nilai ini (atau keduanya) bisa NULL, jangan gunakan itu (hasilnya bisa NULL).
select
if(
fieldA is NULL,
if(fieldB is NULL, NULL, fieldB), /* second NULL is default value */
if(fieldB is NULL, field A, GREATEST(fieldA, fieldB))
) as maxValue
Anda dapat mengubah NULL ke nilai default pilihan Anda (jika kedua nilai tersebut NULL).
select COALESCE(GREATEST(fieldA, fieldB),fieldA,fieldB) as maxValue
. Ini terlalu rumit
GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))