Próbowałem, ale nie udało mi się:
mysql> select max(1,0);
BŁĄD 1064 (42000): Wystąpił błąd w składni SQL; sprawdź instrukcję która odpowiada wersji serwera MySQL, aby można było użyć właściwej składni w pobliżu „0)” w linii 1
Użyj WIELKIEGO ()
Na przykład:
SELECT GREATEST(2,1);
Uwaga: Ilekroć jakakolwiek pojedyncza wartość zawiera w tym czasie wartość null, funkcja ta zawsze zwraca null (Podziękowania dla użytkownika @ sanghavi7)
LEAST
GREATEST
uzyskać wartości dla kolumny cirtainselect greatest(date1, ifnull(date2, "0000-00-00 00.00:00")) from table1 where date2 is null;
Dostaniesz date1.GREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
Aby uzyskać maksymalną wartość kolumny w zestawie wierszy:
Aby uzyskać maksymalną wartość zestawu kolumn, literałów lub zmiennych dla każdego wiersza:
źródło
GREATEST
. Każda wartość null spowoduje, że funkcja zwróci null. Aby temu zapobiec, możesz to zrobićGREATEST(COALESCE(column1, 0), COALESCE(column2, 0))
Możesz użyć WIELKIEJ funkcji z polami, które nie mają wartości zerowych. Jeśli jedna z tych wartości (lub obie) może mieć wartość NULL, nie należy jej używać (wynik może mieć wartość NULL).
Możesz zmienić NULL na preferowaną wartość domyślną (jeśli obie wartości to NULL).
źródło
select COALESCE(GREATEST(fieldA, fieldB),fieldA,fieldB) as maxValue
. To jest zbyt skomplikowaneGREATEST(COALESCE(column1, 0), COALESCE(column2, 0))