MySQL GREATEST()
funktion er en sammenligningsfunktion, der returnerer den største værdi fra en liste over værdier.
Listen over værdier er angivet som flere argumenter. Så med andre ord, GREATEST()
returnerer argumentet med maksimal værdi fra en liste over argumenter.
Syntaks
Syntaksen for GREATEST()
går sådan her:
GREATEST(value1,value2,...)
Hvert argument er adskilt af et komma. Denne funktion sammenligner dem alle og returnerer den med den største værdi.
Eksempel 1 – Sammenligning af tal
Hvis alle argumenter er heltal, sammenlignes de som heltal.
SELECT GREATEST(12, 120, 2400) AS 'Result';
Resultat:
+--------+ | Result | +--------+ | 2400 | +--------+
Hvis mindst et argument er dobbelt præcision, sammenlignes de som dobbeltpræcisionsværdier. Ellers, hvis mindst ét argument er en DECIMAL
værdi, sammenlignes de som DECIMAL
værdier.
SELECT GREATEST(12.00, 120, 2400) AS 'Result';
Resultat:
+---------+ | Result | +---------+ | 2400.00 | +---------+
Se nedenfor for de nøjagtige regler for bestemmelse af returværdien.
Eksempel 2 – Sammenligning af strenge
Her er et eksempel på sammenligning af strenge.
SELECT GREATEST('a', 'b', 'c') AS 'Result';
Resultat:
+--------+ | Result | +--------+ | c | +--------+
Her er endnu en:
SELECT GREATEST('Cat', 'Dogg', 'Rat') AS 'Result';
Resultat:
+--------+ | Result | +--------+ | Rat | +--------+
Eksempel 3 – NULL-værdier
Hvis nogen af argumenterne er NULL
, resultatet er NULL
.
SELECT GREATEST('a', NULL, 'c') AS 'Result';
Resultat:
+--------+ | Result | +--------+ | NULL | +--------+
Sammenligningsregler
Visse regler anvendes, når det bestemmes, hvad returværdien vil være. Disse regler er som følger:
- Hvis et argument er
NULL
, resultatet erNULL
. Ingen sammenligning er nødvendig. - Hvis alle argumenter har et heltal, sammenlignes de som heltal.
- Hvis mindst ét argument er dobbelt præcision, sammenlignes de som dobbeltpræcisionsværdier. Ellers, hvis mindst ét argument er en
DECIMAL
værdi, sammenlignes de somDECIMAL
værdier. - Hvis argumenterne omfatter en blanding af tal og strenge, sammenlignes de som tal.
- Hvis et argument er en ikke-binær (tegn)streng, sammenlignes argumenterne som ikke-binære strenge.
- I alle andre tilfælde sammenlignes argumenterne som binære strenge.