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

Fonction LEAST() dans PostgreSQL

Dans PostgreSQL, le LEAST() renvoie la plus petite valeur d'une liste de n'importe quel nombre d'expressions.

Le LEAST() La fonction n'est pas incluse dans la norme SQL, mais c'est une extension populaire prise en charge par de nombreux SGBDR majeurs.

Syntaxe

LEAST(value [, ...])

Cela signifie essentiellement que nous pouvons transmettre une ou plusieurs valeurs à la fonction.

Exemple

Voici un exemple simple pour illustrer :

SELECT LEAST( 5, 2, 9 );

Résultat :

2

Type de données commun

Les expressions doivent toutes être convertibles en un type de données commun. Le résultat utilisera ce type.

Si les expressions ne peuvent pas être converties en un type de données commun, une erreur se produit :

SELECT LEAST( 5, 'Two', 9 );

Résultat :

ERROR:  invalid input syntax for type integer: "Two"
LINE 1: SELECT LEAST( 5, 'Two', 9 );
                         ^

Chaînes

L'exemple précédent ne veut pas dire que nous ne pouvons pas utiliser de chaînes. C'est simplement pour montrer que nous ne pouvons pas convertir les types de données.

Pour illustrer, voici un exemple où tous les arguments sont des chaînes :

SELECT LEAST( 'Cat', 'Dog', 'Aardvark' );

Résultat :

Aardvark

Dates

Voici une comparaison des chaînes de date :

SELECT LEAST(date '2030-01-01', date '2030-12-31');

Résultat :

2030-01-01

Valeurs nulles

Les valeurs nulles sont ignorées sauf si toutes les expressions sont null . Si toutes les expressions sont null , puis null est renvoyé :

\pset null '<null>'
SELECT 
    LEAST( 5, null, 9 ),
    LEAST( null, null, null );

Résultat :

 least | least  
-------+--------
     5 | <null>

Par défaut, psql renvoie la chaîne vide sur les valeurs nulles. Dans la première ligne de cet exemple, j'ai défini des valeurs nulles pour afficher <null> afin qu'il nous soit plus facile de voir le résultat nul.

Arguments manquants

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

SELECT LEAST();

Résultat :

ERROR:  syntax error at or near ")"
LINE 1: SELECT LEAST();
                     ^

Cependant, nous pouvons passer un argument sans erreur :

SELECT LEAST( 1 );

Résultat :

1