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í
exprje čí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í
exprnení číselné, pak každýexprpo prvním je implicitně převedeno na datový typ prvníhoexprpř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ů.