In Oracle Database, de GREATEST()
functie retourneert de grootste van een lijst van een of meer uitdrukkingen.
Syntaxis
De syntaxis gaat als volgt:
GREATEST(expr [, expr ]...)
De eerste expr
wordt gebruikt om het retourtype te bepalen:
- Als de eerste
expr
numeriek is, bepaalt Oracle het argument met de hoogste numerieke prioriteit, converteert het impliciet de resterende argumenten naar dat gegevenstype vóór de vergelijking en retourneert dat gegevenstype. - Als de eerste
expr
is niet numeriek, dan elkeexpr
nadat de eerste impliciet is geconverteerd naar het gegevenstype van de eersteexpr
voor de vergelijking.
Voorbeeld
Hier is een voorbeeld:
SELECT GREATEST('a', 'b', 'c')
FROM DUAL;
Resultaat:
c
Hier zijn er nog meer:
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;
Resultaat:
r1 r2 r3 r4 r5 _____ ______ _____ _____ ______ a Dot 3 3 Cat
Uitdrukkingen
De argumenten kunnen uitdrukkingen als deze bevatten:
SELECT GREATEST(2 * 3, 1 * 3)
FROM DUAL;
Resultaat:
6
Datums
Hier is een vergelijking van datumreeksen:
SELECT GREATEST(DATE '2020-01-01', DATE '2021-01-01')
FROM DUAL;
Resultaat:
01-JAN-21
De datum wordt geretourneerd in het datumformaat van de huidige sessie. Zie Hoe u de datumnotatie van de huidige sessie kunt controleren.
Null-waarden
Als een argument null
is , het resultaat is null
:
SET NULL 'null';
SELECT
GREATEST(null, 2),
GREATEST(1, null)
FROM DUAL;
Resultaat:
GREATEST(NULL,2) GREATEST(1,NULL) ___________________ ___________________ null null
Standaard retourneren SQLcl en SQL*Plus een spatie wanneer een null-waarde optreedt als resultaat van een SQL SELECT
uitspraak.
U kunt echter SET NULL
. gebruiken om een andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null
moet worden geretourneerd.
Ongeldig aantal argumenten
GREATEST()
. aanroepen zonder argumenten resulteert in een fout:
SELECT GREATEST()
FROM DUAL;
Resultaat:
SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function"
U kunt ook LEAST()
. gebruiken om de minste van een lijst van een of meer uitdrukkingen terug te geven.