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 chaqueexpr
après que le premier est implicitement converti dans le type de données du premierexpr
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.