×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

2.6.10. Функции поддержки перечисляемых типов

Для перечисляемых типов (описанных в Раздел 2.5.7), предусмотрено несколько функций, позволяющих повысить чистоту программного кода без жесткого кодирования конкретных значений перечисляемого типа. Данные функции перечислены в Таблица 2.6.35. В примерах предполагается, что перечисляемый тип создан следующим образом:

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

Таблица 2.6.35. Функции поддержки перечисляемых типов

Функция

Описание

Примеры

enum_first ( anyenum ) → anyenum

Функция возвращает первое значение входного перечисляемого типа.

enum_first(null::rainbow)red

enum_last ( anyenum ) → anyenum

Функция возвращает последнее значение входного перечисляемого типа.

enum_last(null::rainbow)purple

enum_range ( anyenum ) → anyarray

Функция возвращает все значения входного перечисляемого типа в виде упорядоченного массива.

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

enum_range ( anyenum, anyenum ) → anyarray

Функция возвращает диапазон между двумя заданными значениями перечисления в виде упорядоченного массива. Все значения должны принадлежать к одному и тому же перечисляемому типу (enum). Если первый параметр равен null, то возвращаемый диапазон начнется с первого значения этого перечисляемого типа. Если второй параметр равен null, то возвращаемый диапазон завершится последним значением этого перечисляемого типа.

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}


Следует отметить, что за исключением формы функции enum_range, принимающей два аргумента, данные функции игнорируют конкретное переданное им значение; они учитывают только объявленный тип данных этого значения. Для получения одного и того же результата можно передать как значение null, так и конкретное значение указанного типа. Как правило, данные функции применяются к столбцу таблицы или аргументу функции, а не к жестко заданному имени типа, как показано в примерах.

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению