V databázi Oracle LEAST()
funkce vrací nejmenší ze seznamu jednoho nebo více výrazů.
Syntaxe
Syntaxe vypadá takto:
LEAST(expr [, expr ]...)
První expr
se používá k určení návratového typu:
- Pokud je první
expr
je číselný, pak Oracle určí argument s nejvyšší číselnou prioritou, před porovnáním implicitně převede zbývající argumenty na tento datový typ a vrátí tento datový typ. - Pokud je první
expr
není číselné, pak každýexpr
po prvním je implicitně převedeno na datový typ prvníhoexpr
před srovnáním.
Příklad
Příklad:
SELECT LEAST('a', 'b', 'c')
FROM DUAL;
Výsledek:
a
Zde jsou některé další:
SELECT
LEAST('A', 'a') AS "r1",
LEAST('Cat', 'Dog', 'Dot') AS "r2",
LEAST(1, 2, 3) AS "r3",
LEAST(1, '2', 3) AS "r4",
LEAST('Cat', '2001-12-31') AS "r5"
FROM DUAL;
Výsledek:
r1 r2 r3 r4 r5 _____ ______ _____ _____ _____________ A Cat 1 1 2001-12-31
Výrazy
Argumenty mohou obsahovat výrazy jako je tento:
SELECT LEAST(2 * 3, 1 * 3)
FROM DUAL;
Výsledek:
3
Data
Zde je srovnání datových řetězců:
SELECT LEAST(DATE '2020-01-01', DATE '2021-01-01')
FROM DUAL;
Výsledek:
01-JAN-20
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
LEAST(null, 2),
LEAST(1, null)
FROM DUAL;
Výsledek:
LEAST(NULL,2) LEAST(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í LEAST()
bez jakýchkoli argumentů vede k chybě:
SELECT LEAST()
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 GREATEST()
vrátíte největší ze seznamu jednoho nebo více výrazů.