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
exprnumeriek 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
expris niet numeriek, dan elkeexprnadat de eerste impliciet is geconverteerd naar het gegevenstype van de eersteexprvoor 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.