Функции преобразования типов и структур RQL для работы с объектами доменов

Любая функция, не относящаяся к числу специальных функций RQL, транслируется в SQL-запрос PostgreSQL. Таким образом, набор доступных функций определяется возможностями PostgreSQL. Ниже приведены функции, работа которых гарантированно поддерживается в RQL.

Ознакомиться с полным списком функций и их поведением можно в официальной документации PostgreSQL.

Обратите внимание, что для функций в официальной документации PostgreSQL может быть указана версия, в которой эти функции были введены. Это позволит определить, доступна ли рассматриваемая функция в вашей версии PostgreSQL.

Преобразование типов данных (CAST())

Функция CAST() используется для приведения значения к указанному типу данных.

Синтаксис
CAST(<value>, '<type>')

Здесь:

  • <value> — значение, которое нужно привести к другому типу. Может быть указано как псевдоним.

  • <type> — тип данных. Примеры типов, к которым можно привести значения:

    • BOOLEAN;

    • INTEGER;

    • BIGINT

    • FLOAT;

    • DECIMAL;

    • DATE;

    • TIME;

    • TEXT;

    • INET.

      Массивы описываются с указанием [] после типа элементов массива: inet[], text[], integer[].

      Функция поддерживает все типы данных PostgreSQL. Ознакомьтесь с полным списком типов в документации PostgreSQL.

Пример

Приведение для арифметической операции
expression: !rql SELECT CAST(2, 'INTEGER') + CAST(3, 'INTEGER')

В этом RQL-выражении два значения приводятся к типу INTEGER, чтобы корректно выполнить арифметическую операцию. Без явного указания типа системе неизвестно, какого типа данные, поэтому требуется использовать CAST().

Создание массива (ARRAY())

Функция ARRAY() используется для создания массива из переданных аргументов.

Синтаксис
ARRAY(<arg1>, <arg2>, ... <argN>)

Здесь:

  • <argN> — элементы массива.

Разворачивание скалярного массива в коллекцию (UNNEST())

Функция UNNEST() используется для преобразования массива в набор значений. Функция возвращает виртуальную таблицу с одним столбцом, в которой элементы исходного массива представлены в виде отдельных строк. Таблица может быть использована в дальнейших операциях запроса.

Синтаксис
UNNEST(<array>)

Здесь:

  • <array> — массив значений.

Была ли полезна эта страница?

Обратная связь