I Oracle Database er GREATEST()
funktion returnerer den største af en liste med et eller flere udtryk.
Syntaks
Syntaksen ser sådan ud:
GREATEST(expr [, expr ]...)
Den første expr
bruges til at bestemme returtypen:
- Hvis den første
expr
er numerisk, så bestemmer Oracle argumentet med den højeste numeriske forrang, konverterer implicit de resterende argumenter til den datatype før sammenligningen og returnerer den datatype. - Hvis den første
expr
er ikke numerisk, derefter hverexpr
efter den første er implicit konverteret til datatypen for den førsteexpr
før sammenligningen.
Eksempel
Her er et eksempel:
SELECT GREATEST('a', 'b', 'c')
FROM DUAL;
Resultat:
c
Her er nogle flere:
SELECT
GREATEST('A', 'a') AS "r1",
GREATEST('Cat', 'Dog', 'Dot') AS "r2",
GREATEST(1, 2, 3) AS "r3",
GREATEST(1, '2', 3) AS "r4",
GREATEST('Cat', '2001-12-31') AS "r5"
FROM DUAL;
Resultat:
r1 r2 r3 r4 r5 _____ ______ _____ _____ ______ a Dot 3 3 Cat
Udtryk
Argumenterne kan indeholde udtryk som dette:
SELECT GREATEST(2 * 3, 1 * 3)
FROM DUAL;
Resultat:
6
Datoer
Her er en sammenligning af datostrenge:
SELECT GREATEST(DATE '2020-01-01', DATE '2021-01-01')
FROM DUAL;
Resultat:
01-JAN-21
Datoen returneres i datoformatet for den aktuelle session. Se, hvordan du kontrollerer datoformatet for den aktuelle session.
Nul-værdier
Hvis et argument er null
, resultatet er null
:
SET NULL 'null';
SELECT
GREATEST(null, 2),
GREATEST(1, null)
FROM DUAL;
Resultat:
GREATEST(NULL,2) GREATEST(1,NULL) ___________________ ___________________ null null
Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når der opstår en null-værdi som et resultat af en SQL SELECT
udmelding.
Du kan dog bruge SET NULL
for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null
skal returneres.
Ugyldigt argumentantal
Kalder GREATEST()
uden nogen argumenter resulterer i en fejl:
SELECT GREATEST()
FROM DUAL;
Resultat:
SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function"
Du kan også bruge LEAST()
for at returnere det mindste af en liste med et eller flere udtryk.