V databázi Oracle je to GREATEST() funkce vrací největší ze seznamu jednoho nebo více výrazů.
Syntaxe
Syntaxe vypadá takto:
GREATEST(expr [, expr ]...)
První expr se používá k určení návratového typu:
- Pokud je první
exprje číselný, pak Oracle určí argument s nejvyšší číselnou prioritou, implicitně převede zbývající argumenty na tento datový typ před porovnáním a vrátí tento datový typ. - Pokud je první
exprnení číselné, pak každýexprpo prvním je implicitně převedeno na datový typ prvníhoexprpřed srovnáním.
Příklad
Zde je příklad:
SELECT GREATEST('a', 'b', 'c')
FROM DUAL; Výsledek:
c
Zde jsou některé další:
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; Výsledek:
r1 r2 r3 r4 r5 _____ ______ _____ _____ ______ a Dot 3 3 Cat
Výrazy
Argumenty mohou obsahovat výrazy jako je tento:
SELECT GREATEST(2 * 3, 1 * 3)
FROM DUAL; Výsledek:
6
Data
Zde je srovnání datových řetězců:
SELECT GREATEST(DATE '2020-01-01', DATE '2021-01-01')
FROM DUAL; Výsledek:
01-JAN-21
Datum je vráceno ve formátu data aktuální relace. Viz Jak zkontrolovat formát data aktuální relace.
Nulové hodnoty
Pokud je některý argument null , výsledkem je null :
SET NULL 'null';
SELECT
GREATEST(null, 2),
GREATEST(1, null)
FROM DUAL; Výsledek:
GREATEST(NULL,2) GREATEST(1,NULL) ___________________ ___________________ null null
Ve výchozím nastavení vrátí SQLcl a SQL*Plus prázdné místo, kdykoli se v důsledku příkazu SQL SELECT objeví hodnota null. prohlášení.
Můžete však použít SET NULL určit jiný řetězec, který má být vrácen. Zde jsem uvedl, že řetězec null by měl být vrácen.
Neplatný počet argumentů
Volání GREATEST() bez jakýchkoli argumentů vede k chybě:
SELECT GREATEST()
FROM DUAL; Výsledek:
SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function"
Můžete také použít LEAST() vrátíte nejmenší ze seznamu jednoho nebo více výrazů.