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

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

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

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

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

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

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

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

5.6.4. Выражения

Все выражения, используемые в PL/pgSQL операторах, обрабатываются основным механизмом сервера SQL исполнитель. Например, если написана такая PL/pgSQL конструкция, как

IF выражение THEN ...

PL/pgSQL вычисляет выражение, передавая запрос вида

SELECT выражение

основному SQL-движку. При формировании SELECT команды любые вхождения PL/pgSQL имен переменных заменяются параметрами запроса, как подробно описано в Раздел 5.6.11.1. Это позволяет подготовить план запроса для SELECT лишь один раз, а затем повторно использовать его для последующих вычислений с различными значениями переменных. Таким образом, то, что в действительности происходит при первом использовании выражения, по сути представляет собой PREPARE команды. Например, если объявлены две целочисленные переменные x и y, и записывается выражение

IF x < y THEN ...

внутренние механизмы работы эквивалентны

PREPARE statement_name(integer, integer) AS SELECT $1 < $2;

и затем этот подготовленный оператор EXECUTEd при каждом выполнении IF оператора, при этом текущие значения переменных PL/pgSQL передаются в качестве значений параметров. Обычно эти подробности не имеют значения для PL/pgSQL пользователя, но их полезно знать при диагностике проблем. Дополнительная информация приведена в Раздел 5.6.11.2.

Поскольку выражение преобразуется в SELECT команду, он может содержать те же предложения, что и обычный оператор SELECT за исключением того, что он не может включать в себя предложения верхнего уровня UNION, INTERSECT, или EXCEPT предложение. Так, например, можно проверить, не является ли таблица пустой, с помощью

IF count(*) > 0 FROM my_table THEN ...

поскольку выражение между IF и THEN анализируется так, как если бы это была команда SELECT count(*) > 0 FROM my_table. Команда SELECT должна возвращать один столбец и не более чем одну строку. (Если она не возвращает строк, результатом считается NULL.)

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

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