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] |