Zum Inhalt springen

Enum-Funktionen

Dieser Abschnitt beschreibt Funktionen und Operatoren zum Untersuchen und Manipulieren von ENUM-Werten. Die Beispiele setzen einen wie folgt angelegten Enum-Typ voraus:

CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy', 'anxious');

Diese Funktionen können NULL oder einen konkreten Wert des Typs als Argument(e) entgegennehmen. Die meisten Enum-Funktionen liefern einen Wert, der nur vom Typ des Arguments abhängt, nicht von seinem Wert. Die Funktionen enum_code() und enum_range_boundary() sind Ausnahmen; sie liefern einen Wert, der vom Argumentwert sowie von seinem Typ abhängt.

Name Beschreibung
enum_code(enum_value) Liefert den (0-basierten) numerischen Wert, der hinter dem angegebenen Enum-Wert steht.
enum_first(enum) Liefert den ersten Wert des Eingabe-Enum-Typs.
enum_last(enum) Liefert den letzten Wert des Eingabe-Enum-Typs.
enum_range(enum) Liefert alle Werte des Eingabe-Enum-Typs als Array.
enum_range_boundary(enum, enum) Liefert den Bereich zwischen den beiden angegebenen Enum-Werten als Array.

enum_code(enum_value)

| Beschreibung | Liefert den (0-basierten) numerischen Wert, der hinter dem angegebenen Enum-Wert steht. | | Beispiel | enum_code('happy'::mood) | | Ergebnis | 2 |

enum_first(enum)

| Beschreibung | Liefert den ersten Wert des Eingabe-Enum-Typs. | | Beispiel | enum_first(NULL::mood) | | Ergebnis | sad |

enum_last(enum)

| Beschreibung | Liefert den letzten Wert des Eingabe-Enum-Typs. | | Beispiel | enum_last(NULL::mood) | | Ergebnis | anxious |

enum_range(enum)

| Beschreibung | Liefert alle Werte des Eingabe-Enum-Typs als Array. | | Beispiel | enum_range(NULL::mood) | | Ergebnis | [sad, ok, happy, anxious] |

enum_range_boundary(enum, enum)

| Beschreibung | Liefert den Bereich zwischen den beiden angegebenen Enum-Werten als Array. Die Werte müssen vom selben Enum-Typ sein. Ist der erste Parameter NULL, beginnt das Ergebnis mit dem ersten Wert des Enum-Typs. Ist der zweite Parameter NULL, endet das Ergebnis mit dem letzten Wert des Enum-Typs. | | Beispiel | enum_range_boundary(NULL, 'happy'::mood) | | Ergebnis | [sad, ok, happy] |