Denedim ama başarısız oldu:
mysql> select max(1,0);
HATA 1064 (42000): SQL sözdiziminizde bir hata var; kılavuzu kontrol et doğru sözdiziminin kullanılması için MySQL sunucu sürümünüze karşılık gelir 1. satırda '0)' yakınında
Denedim ama başarısız oldu:
mysql> select max(1,0);
HATA 1064 (42000): SQL sözdiziminizde bir hata var; kılavuzu kontrol et doğru sözdiziminin kullanılması için MySQL sunucu sürümünüze karşılık gelir 1. satırda '0)' yakınında
Yanıtlar:
GREATEST () kullan
Örneğin:
SELECT GREATEST(2,1);
Not: O sırada herhangi bir değer null içeriyorsa, bu işlev her zaman null değerini döndürür (user @ sanghavi7 sayesinde)
GREATEST
sütun için değerleri alabilirsiniz böylece bir parametre olarak bir alt sorgu çalıştırabilirsiniz
select greatest(date1, ifnull(date2, "0000-00-00 00.00:00")) from table1 where date2 is null;
size tarih vereceğim 1.
GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
Bir satır kümesindeki bir sütunun maksimum değerini almak için:
SELECT MAX(column1) FROM table; -- expect one result
Her satır için bir dizi sütun, değişmez değer veya değişkenin maksimum değerini almak için:
SELECT GREATEST(column1, 1, 0, @val) FROM table; -- expect many results
GREATEST
. Herhangi bir null değer, işlevin null değerine dönmesine neden olur. Bunu önlemek için şunları yapabilirsinizGREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
En büyük işlevi nullable olmayan alanlarda kullanabilirsiniz. Bu değerlerden biri (veya her ikisi birden) NULL ise, kullanmayın (sonuç NULL olabilir).
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
NULL değerini tercih ettiğiniz varsayılan değere değiştirebilirsiniz (her iki değer de NULL ise).
select COALESCE(GREATEST(fieldA, fieldB),fieldA,fieldB) as maxValue
. Çok karmaşık
GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))