PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 10.23 » Langage SQL » Fonctions et opérateurs » Fonctions de support enum

9.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

FonctionDescriptionExempleRésultat de l'exemple
enum_first(anyenum) Renvoie la première valeur du type enum en entréeenum_first(null::couleurs)rouge
enum_last(anyenum) Renvoie la dernière valeur du type enum en entréeenum_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.