Функции поддержки перечислений
Для перечислимых типов (описанных в разделе Перечислимые типы), существует несколько функций, позволяющих программировать чище, без жесткого кодирования конкретных значений перечислимого типа. Эти функции приведены в Таблице 34. В примерах предполагается, что перечислимый тип создан как:
CREATE TYPE rainbow AS ENUM (’red’, ’orange’, ’yellow’, ’green’, ’blue’, ’purple’);
Таблица 34. Функции поддержки перечислений
Функция |
||
---|---|---|
Описание Пример(ы) |
||
enum_first ( anyenum ) → anyenum |
||
Возвращает первое значение входных данных перечислимого типа.
|
||
enum_last ( anyenum ) → anyenum |
||
Возвращает последнее значение входных данных перечислимого типа.
|
||
enum_range ( anyenum ) → anyarray |
||
Возвращает все значения входных данных перечислимого типа в упорядоченном массиве.
|
||
enum_range ( anyenum, anyenum ) → anyarray |
||
Возвращает диапазон между двумя заданными значениями перечисления в виде упорядоченного массива. Значения должны быть принадлежать одному перечислимому типу. Если первый параметр имеет значение NULL, результат будет начинаться с первого значения перечислимого типа. Если второй параметр имеет значение NULL, результат будет заканчиваться последним значением перечислимого типа.
|
Обратите внимание, что за исключением формы enum_range с двумя аргументами, эти функции игнорируют конкретное переданное им значение; их интересует только его объявленный тип данных. Может быть передан либо NULL, либо конкретное значение этого типа, при этом результат будет одинаковым. Как правило, эти функции применяются к столбцу таблицы или аргументу функции, а не к жестко закодированному имени типа, как показано в примерах.