PostgreSQL: функции поддержки Enum
Вступление
В отличие от других типов, перечисляемые типы необходимо создавать с помощью команды CREATE TYPE. Этот тип используется для хранения статического упорядоченного набора значений, например, направлений компаса, то есть NORTH, SOUTH, EAST и WEST или дней недели. Для типов enum есть несколько функций, которые позволяют более чистое программирование без жесткого кодирования определенных значений типа enum. Тип enum может использоваться в определениях таблиц и функций так же, как и любой другой тип.
CREATE TYPE country AS ENUM («Индия», «Аргентина», «Австралия», «Япония», «Америка», «Китай»);
функция enum_first (anyenum)
Функция enum_first () возвращает первое значение входного типа enum
Синтаксис:
enum_first (anyenum)
пример
postgres = # select enum_first (null :: country); enum_first ------------ Индия (1 ряд)
функция enum_last (anyenum)
Функция enum_last () возвращает последнее значение типа входного перечисления.
Синтаксис:
enum_last (anyenum)
пример
postgres = # SELECT enum_last (null :: country); enum_last ----------- Китай (1 ряд)
функция enum_range (anyenum)
Функция enum_range () возвращает все значения входного типа enum в упорядоченном массиве.
Синтаксис:
enum_range (anyenum)
пример
ВЫБЕРИТЕ enum_range (null :: country); enum_range ------------------------------------------------- {Индия, Аргентина, Австралия, Япония, Америка, Китай} (1 ряд)
Пример вывода:
postgres = # SELECT enum_range (null :: country); enum_range ------------------------------------------------- {Индия, Аргентина, Австралия, Япония, Америка, Китай} (1 ряд)
Функция enum_range (anyenum, anyenum)
Функция enum_range () возвращает диапазон между двумя заданными значениями перечисления в виде упорядоченного массива. Значения должны быть из того же типа перечисления.
Если первый параметр имеет значение null, результат будет начинаться с первого значения типа enum.
Если второй параметр имеет значение null, результат заканчивается последним значением типа enum.
Синтаксис :
enum_range (anyenum, anyenum)
Пример-1
postgres = # SELECT enum_range ('australia' :: страна, 'America' :: страна); enum_range --------------------------- {Австралия, Япония, Америка} (1 ряд)
Пример-2
postgres = # SELECT enum_range (null, 'America' :: Country); enum_range ------------------------------------------- {Индия, Аргентина, Австралия, Япония, Америка} (1 ряд)
Пример-3
postgres = # SELECT enum_range ('argentina' :: country, null); enum_range ------------------------------------------- {Аргентина, Австралия, Япония, Америка, Китай} (1 ряд)
Предыдущая: Функции текстового поиска и операторы
Next: Функции системной информации
Новый контент: Composer: менеджер зависимостей для PHP , R программирования