sql >> Database teknologi >  >> RDS >> Oracle

LEAST() Funktion i Oracle

I Oracle Database er LEAST() funktion returnerer det mindste af en liste med et eller flere udtryk.

Syntaks

Syntaksen ser sådan ud:

LEAST(expr [, expr ]...)

Den første expr bruges til at bestemme returtypen:

  • Hvis den første expr er numerisk, så bestemmer Oracle argumentet med den højeste numeriske forrang, konverterer implicit de resterende argumenter til den datatype før sammenligningen og returnerer den datatype.
  • Hvis den første expr er ikke numerisk, derefter hver expr efter den første er implicit konverteret til datatypen for den første expr før sammenligningen.

Eksempel

Her er et eksempel:

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

Resultat:

a

Her er nogle flere:

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   

Udtryk

Argumenterne kan omfatte udtryk som dette:

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

Resultat:

3

Datoer

Her er en sammenligning af datostrenge:

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

Resultat:

01-JAN-20

Datoen returneres i datoformatet for den aktuelle session. Se, hvordan du kontrollerer datoformatet for den aktuelle session.

Nul-værdier

Hvis et argument er null , resultatet er null :

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

Resultat:

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

Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når der opstår en null-værdi som et resultat af en SQL SELECT erklæring.

Du kan dog bruge SET NULL for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null skal returneres.

Ugyldigt argumentantal

Ringer LEAST() uden argumenter resulterer i en fejl:

SELECT LEAST()
FROM DUAL;

Resultat:

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

Du kan også bruge GREATEST() for at returnere den største af en liste med et eller flere udtryk.


  1. Hvorfor og hvornår en LEFT JOIN med betingelse i WHERE-klausulen ikke svarer til den samme LEFT JOIN i ON?

  2. MySQL:er en SELECT-sætning skelet mellem store og små bogstaver?

  3. Svarende til strftime i Postgres

  4. COALESCE() Funktion i Oracle