Oracle
 sql >> Base de données >  >> RDS >> Oracle

Fonction LEAST() dans Oracle

Dans Oracle Database, le LEAST() La fonction renvoie la plus petite d'une liste d'une ou plusieurs expressions.

Syntaxe

La syntaxe ressemble à ceci :

LEAST(expr [, expr ]...)

La première expr est utilisé pour déterminer le type de retour :

  • Si le premier expr est numérique, Oracle détermine alors l'argument avec la priorité numérique la plus élevée, convertit implicitement les arguments restants dans ce type de données avant la comparaison et renvoie ce type de données.
  • Si le premier expr n'est pas numérique, puis chaque expr après que le premier est implicitement converti dans le type de données du premier expr avant la comparaison.

Exemple

Voici un exemple :

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

Résultat :

a

En voici d'autres :

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;

Résultat :

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

Expressions

Les arguments peuvent inclure des expressions comme celle-ci :

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

Résultat :

3

Dates

Voici une comparaison des chaînes de date :

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

Résultat :

01-JAN-20

La date est renvoyée au format de date de la session en cours. Voir Comment vérifier le format de date de la session en cours.

Valeurs nulles

Si un argument est null , le résultat est null :

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

Résultat :

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

Par défaut, SQLcl et SQL*Plus renvoient un espace vide chaque fois qu'une valeur nulle se produit à la suite d'un SELECT SQL déclaration.

Cependant, vous pouvez utiliser SET NULL pour spécifier une autre chaîne à renvoyer. Ici, j'ai précisé que la chaîne null doit être retourné.

Nombre d'arguments non valides

Appel LEAST() sans aucun argument génère une erreur :

SELECT LEAST()
FROM DUAL;

Résultat :

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

Vous pouvez également utiliser GREATEST() pour renvoyer la plus grande d'une liste d'une ou plusieurs expressions.