Dans PostgreSQL, le GREATEST()
renvoie la plus grande (ou la plus grande) valeur d'une liste de n'importe quel nombre d'expressions.
Le GREATEST()
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
GREATEST(value [, ...])
Cela signifie que nous pouvons passer une ou plusieurs valeurs à la fonction.
Exemple
Voici un exemple simple pour illustrer :
SELECT GREATEST( 3, 15, 7 );
Résultat :
15
Chaînes
Voici un exemple où tous les arguments sont des chaînes :
SELECT GREATEST( 'Bear', 'Zebra', 'Ant' );
Résultat :
Zebra
Dates
Voici une comparaison des chaînes de date :
SELECT GREATEST(date '2027-01-01', date '2027-12-31');
Résultat :
2027-12-31
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 GREATEST( 3, 'Fifteen', 7 );
Résultat :
ERROR: invalid input syntax for type integer: "Fifteen" LINE 1: SELECT GREATEST( 3, 'Fifteen', 7 ); ^
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
GREATEST( 3, null, 7 ),
GREATEST( null, null, null );
Résultat :
greatest | greatest ----------+---------- 7 | <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 GREATEST()
sans aucun argument génère une erreur :
SELECT GREATEST();
Résultat :
ERROR: syntax error at or near ")" LINE 1: SELECT GREATEST(); ^
Cependant, nous pouvons passer un argument sans erreur :
SELECT GREATEST( 1 );
Résultat :
1