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

9.10. Fonctions de support d'enum #

Pour les types enum (décrites dans Section 8.7), il existe différentes fonctions permettant une programmation propre sans codage en dur de valeurs particulières d'un type enum. Elles sont listées dans Tableau 9.35. Les exemples supposent un type enum créé ainsi :

CREATE TYPE rainbow AS ENUM ('red', 'orange', 'yellow', 'green', 'blue', 'purple');
  

Tableau 9.35. Fonctions de support des enum

Fonction

Description

Exemple(s)

enum_first ( anyenum ) → anyenum

Renvoie la première valeur d'un type enum en entrée.

enum_first(null::rainbow)red

enum_last ( anyenum ) → anyenum

Renvoie la dernière valeur d'un type enum en entrée.

enum_last(null::rainbow)purple

enum_range ( anyenum ) → anyarray

Renvoie toutes les valeurs du type enum en entrée dans un tableau trié.

enum_range(null::rainbow){red,orange,yellow,​green,blue,purple}

enum_range ( anyenum, anyenum ) → anyarray

Renvoie l'intervalle entre deux valeurs enum données, comme un tableau trié. Les valeurs doivent être dans le même type enum. Si le premier paramètre est NULL, le résultat commencera avec la première valeur du type enum. Si le second paramètre est NULL, le résultat se terminera avec la dernière valeur du type enum.

enum_range('orange'::rainbow, 'green'::rainbow){orange,yellow,green}

enum_range(NULL, 'green'::rainbow){red,orange,​yellow,green}

enum_range('orange'::rainbow, NULL){orange,yellow,green,​blue,purple}


Notez que, sauf pour la forme de enum_range à deux arguments, ces fonctions ignorent la valeur spécifique fournie. Seul importe le type de donnée déclaré. Peut être fourni soit NULL soit une valeur spécifique du type de données déclaré, avec le même résultat. Il est plus fréquent d'appliquer ces fonctions à une colonne d'une table ou à un argument d'une fonction qu'un nom de type codé en dur, comme utilisé dans les exemples.