Saya mencoba tetapi gagal:
mysql> select max(1,0);
GALAT 1064 (42000): Anda memiliki kesalahan dalam sintaks SQL Anda; periksa manualnya yang sesuai dengan versi server MySQL Anda untuk sintaks yang tepat untuk digunakan dekat '0)' pada baris 1
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)
LEAST
GREATEST
sehingga saya bisa mendapatkan nilai untuk kolom cirtainselect 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:
Untuk mendapatkan nilai maksimum dari serangkaian kolom, literal, atau variabel untuk setiap baris:
sumber
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).
Anda dapat mengubah NULL ke nilai default pilihan Anda (jika kedua nilai tersebut NULL).
sumber
select COALESCE(GREATEST(fieldA, fieldB),fieldA,fieldB) as maxValue
. Ini terlalu rumitGREATEST(COALESCE(column1, 0), COALESCE(column2, 0))