MySQL GREATEST()
funkce je porovnávací funkce, která vrací největší hodnotu ze seznamu hodnot.
Seznam hodnot je poskytován jako více argumentů. Jinými slovy, GREATEST()
vrátí maximální hodnotu argumentu ze seznamu argumentů.
Syntaxe
Syntaxe GREATEST()
vypadá takto:
GREATEST(value1,value2,...)
Každý argument je oddělen čárkou. Tato funkce je všechny porovná a vrátí ten s největší hodnotou.
Příklad 1 – Porovnání čísel
Pokud jsou všechny argumenty celá čísla, jsou porovnávány jako celá čísla.
SELECT GREATEST(12, 120, 2400) AS 'Result';
Výsledek:
+--------+ | Result | +--------+ | 2400 | +--------+
Pokud má alespoň jeden argument dvojitou přesnost, jsou porovnány jako hodnoty s dvojnásobnou přesností. Jinak, pokud je alespoň jeden argument DECIMAL
hodnota, jsou porovnány jako DECIMAL
hodnoty.
SELECT GREATEST(12.00, 120, 2400) AS 'Result';
Výsledek:
+---------+ | Result | +---------+ | 2400.00 | +---------+
Přesná pravidla pro určení návratové hodnoty naleznete níže.
Příklad 2 – Porovnání řetězců
Zde je příklad porovnání řetězců.
SELECT GREATEST('a', 'b', 'c') AS 'Result';
Výsledek:
+--------+ | Result | +--------+ | c | +--------+
Tady je další:
SELECT GREATEST('Cat', 'Dogg', 'Rat') AS 'Result';
Výsledek:
+--------+ | Result | +--------+ | Rat | +--------+
Příklad 3 – hodnoty NULL
Pokud je některý z argumentů NULL
, výsledkem je NULL
.
SELECT GREATEST('a', NULL, 'c') AS 'Result';
Výsledek:
+--------+ | Result | +--------+ | NULL | +--------+
Pravidla porovnávání
Při určování návratové hodnoty se uplatňují určitá pravidla. Tato pravidla jsou následující:
- Pokud je některý argument
NULL
, výsledkem jeNULL
. Není potřeba žádné srovnání. - Pokud mají všechny argumenty celočíselnou hodnotu, jsou porovnávány jako celá čísla.
- Pokud má alespoň jeden argument dvojnásobnou přesnost, jsou porovnány jako hodnoty s dvojnásobnou přesností. Jinak, pokud je alespoň jeden argument
DECIMAL
hodnota, jsou porovnány jakoDECIMAL
hodnoty. - Pokud argumenty obsahují kombinaci čísel a řetězců, porovnávají se jako čísla.
- Pokud je některý argument nebinární (znakový) řetězec, jsou argumenty porovnány jako nebinární řetězce.
- Ve všech ostatních případech jsou argumenty porovnávány jako binární řetězce.