Der MySQL GREATEST()
Funktion ist eine Vergleichsfunktion, die den größten Wert aus einer Werteliste zurückgibt.
Die Werteliste wird als mehrere Argumente bereitgestellt. Also mit anderen Worten, GREATEST()
gibt das höchstwertige Argument aus einer Liste von Argumenten zurück.
Syntax
Die Syntax von GREATEST()
geht so:
GREATEST(value1,value2,...)
Jedes Argument wird durch ein Komma getrennt. Diese Funktion vergleicht sie alle und gibt diejenige mit dem größten Wert zurück.
Beispiel 1 – Zahlen vergleichen
Wenn alle Argumente ganze Zahlen sind, werden sie als ganze Zahlen verglichen.
SELECT GREATEST(12, 120, 2400) AS 'Result';
Ergebnis:
+--------+ | Result | +--------+ | 2400 | +--------+
Wenn mindestens ein Argument doppelte Genauigkeit hat, werden sie als Werte mit doppelter Genauigkeit verglichen. Andernfalls, wenn mindestens ein Argument ein DECIMAL
ist Wert, werden sie als DECIMAL
verglichen Werte.
SELECT GREATEST(12.00, 120, 2400) AS 'Result';
Ergebnis:
+---------+ | Result | +---------+ | 2400.00 | +---------+
Die genauen Regeln zur Bestimmung des Rückgabewerts finden Sie weiter unten.
Beispiel 2 – Strings vergleichen
Hier ist ein Beispiel für den Vergleich von Strings.
SELECT GREATEST('a', 'b', 'c') AS 'Result';
Ergebnis:
+--------+ | Result | +--------+ | c | +--------+
Hier ist noch einer:
SELECT GREATEST('Cat', 'Dogg', 'Rat') AS 'Result';
Ergebnis:
+--------+ | Result | +--------+ | Rat | +--------+
Beispiel 3 – NULL-Werte
Wenn eines der Argumente NULL
ist , ist das Ergebnis NULL
.
SELECT GREATEST('a', NULL, 'c') AS 'Result';
Ergebnis:
+--------+ | Result | +--------+ | NULL | +--------+
Vergleichsregeln
Bei der Bestimmung des Rückgabewerts werden bestimmte Regeln angewendet. Diese Regeln lauten wie folgt:
- Wenn irgendein Argument
NULL
ist , ist das ErgebnisNULL
. Es ist kein Vergleich erforderlich. - Wenn alle Argumente ganzzahlig sind, werden sie als Ganzzahlen verglichen.
- Wenn mindestens ein Argument doppelte Genauigkeit hat, werden sie als Werte mit doppelter Genauigkeit verglichen. Andernfalls, wenn mindestens ein Argument ein
DECIMAL
ist Wert, werden sie alsDECIMAL
verglichen Werte. - Wenn die Argumente eine Mischung aus Zahlen und Zeichenketten umfassen, werden sie als Zahlen verglichen.
- Wenn ein Argument eine nichtbinäre (Zeichen-)Zeichenfolge ist, werden die Argumente als nichtbinäre Zeichenfolgen verglichen.
- In allen anderen Fällen werden die Argumente als Binärstrings verglichen.