sql >> Databáze >  >> RDS >> Oracle

Funkce LEAST() v Oracle

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ího expr 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ů.


  1. Oracle vložit do tabulky2 a poté odstranit z tabulky1, výjimka, pokud selže

  2. 2018 Recenze:7 milníků MariaDB, které jste možná zmeškali

  3. Časový limit dotazu vyprší při spuštění z webu, ale superrychlý při spuštění z SSMS

  4. Vyberte tři nejlepší hodnoty v každé skupině