sql >> Databasteknik >  >> RDS >> Oracle

LEAST() Funktion i Oracle

I Oracle Database, LEAST() funktion returnerar det minsta av en lista med ett eller flera uttryck.

Syntax

Syntaxen ser ut så här:

LEAST(expr [, expr ]...)

Den första expr används för att bestämma returtypen:

  • Om den första expr är numerisk, bestämmer Oracle argumentet med den högsta numeriska prioritet, konverterar implicit de återstående argumenten till den datatypen före jämförelsen och returnerar den datatypen.
  • Om den första expr är inte numerisk, sedan varje expr efter att den första implicit konverterats till datatypen för den första expr före jämförelsen.

Exempel

Här är ett exempel:

SELECT LEAST('a', 'b', 'c')
FROM DUAL;

Resultat:

a

Här är några fler:

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;

Resultat:

   r1     r2    r3    r4            r5 
_____ ______ _____ _____ _____________ 
A     Cat        1     1 2001-12-31   

Uttryck

Argumenten kan innehålla uttryck som detta:

SELECT LEAST(2 * 3, 1 * 3)
FROM DUAL;

Resultat:

3

Datum

Här är en jämförelse av datumsträngar:

SELECT LEAST(DATE '2020-01-01', DATE '2021-01-01')
FROM DUAL;

Resultat:

01-JAN-20

Datumet returneras i datumformatet för den aktuella sessionen. Se Hur du kontrollerar datumformatet för den aktuella sessionen.

Nullvärden

Om något argument är null , resultatet är null :

SET NULL 'null';
SELECT 
    LEAST(null, 2),
    LEAST(1, null)
FROM DUAL;

Resultat:

   LEAST(NULL,2)    LEAST(1,NULL) 
________________ ________________ 
null                         null

Som standard returnerar SQLcl och SQL*Plus ett tomt utrymme när ett nollvärde inträffar som ett resultat av en SQL SELECT uttalande.

Du kan dock använda SET NULL för att ange en annan sträng som ska returneras. Här specificerade jag att strängen null bör returneras.

Ogiltigt antal argument

Ringer LEAST() utan några argument resulterar i ett fel:

SELECT LEAST()
FROM DUAL;

Resultat:

SQL Error: ORA-00938: not enough arguments for function
00938. 00000 -  "not enough arguments for function"

Du kan också använda GREATEST() för att returnera det största av en lista med ett eller flera uttryck.


  1. PostgreSQL:mellan med datetime

  2. Hur vet man vilken partition som kommer att användas i Postgres hashpartitionering?

  3. Webbplats nere och Twitter-flöde

  4. Åtgärda "ERROR 1136 (21S01):Kolumnantal matchar inte värderäkning på rad 2" när du använder VALUES Statement i MySQL