Documentation PostgreSQL 11.22 »
Langage SQL »
Fonctions et opérateurs »
Fonctions de support enum9.10. Fonctions de support enum
Pour les types enum (décrits dans Section 8.7),
il existe plusieurs fonctions qui autorisent une programmation plus claire
sans coder en dur les valeurs particulières d'un type enum.
Elles sont listées dans Tableau 9.32. Les exemples
supposent un type enum créé ainsi :
CREATE TYPE couleurs AS ENUM ('rouge', 'orange', 'jaune', 'vert', 'bleu', 'violet');
Tableau 9.32. Fonctions de support enum
Fonction | Description | Exemple | Résultat de l'exemple |
---|
enum_first(anyenum)
| Renvoie la première valeur du type enum en entrée | enum_first(null::couleurs) | rouge |
enum_last(anyenum)
| Renvoie la dernière valeur du type enum en entrée | enum_last(null::couleurs) | violet |
enum_range(anyenum)
| Renvoie toutes les valeurs du type enum en entrée dans un tableau
trié | enum_range(null::couleurs) | {rouge,orange,jaune,vert,bleu,violet} |
enum_range(anyenum, anyenum) |
Renvoie les éléments entre deux valeurs enum données dans un tableau
trié. Les valeurs doivent être du même type enum. Si le premier paramètre
est NULL, le résultat se termine avec la dernière valeur du type enum.
| enum_range('orange'::couleurs, 'vert'::couleurs) | {orange,jaune,vert} |
enum_range(NULL, 'vert'::couleurs) | {rouge,orange,jaune,vert} |
enum_range('orange'::couleurs, NULL) | {orange,jaune,vert,bleu,violet} |
En dehors de la forme à deux arguments de
enum_range
, ces fonctions ne tiennent pas compte de
la valeur qui leur est fournie ; elles ne s'attachent qu'au type de
donnée déclaré. NULL ou une valeur spécifique du type peut être
passée, le résultat est le même. Il est plus commun d'appliquer ces
fonctions à la colonne d'une table ou à l'argument d'une fonction
qu'à un nom de type en dur, comme le suggèrent les exemples.