Выражения
Выражения SQL представляют формальные методы для вычисления, преобразования и сравнения значений.Выражения SQL могут включать в себя столбцы таблиц, переменные, константы, литералы, различные операторы и предикаты, а так же другие выражения.Полный список допустимых символов (tokens) в выражениях описан ниже.
- Имя столбца
-
Идентификаторы столбцов из указанных таблиц, используемые ввычислениях, или сравнениях, или в качестве условия поиска. Столбецтипа массив не может быть элементом выражения, если только он непроверяется на
IS [NOT] NULL
. - Элементы массива
-
В выражении может содержаться ссылка на элемент массива, т.е.
<array_name>[s]
, где s — индекс элемента в массиве. - Арифметические операторы
-
Символы
+
,-
,*
,/
используемые для вычисления значений. - Оператор конкатенации
-
Оператор
||
(“две вертикальные линии”) используется для соединения символьных строк. - Логические операторы
-
Зарезервированные слова
NOT
,AND
иOR
используются прикомбинировании простых условий поиска для создания сложныхутверждений. - Операторы сравнения
-
Символы
=
,<>
,!=
,~=
,^=
,<
,<=
,>
,>=
,!<
,~<
,^<
,!>
,~>
и^>
- Предикаты сравнения
-
LIKE
,STARTING WITH
,CONTAINING
,SIMILAR TO
,BETWEEN
,IS [NOT]NULL
,IS [NOT] {TRUE | FALSE | UNKNOWN}
, иIS [NOT] DISTINCT FROM
- Предикаты существования
-
Предикаты, используемые для проверки существования значений внаборе. Предикат IN может быть использован как с наборами констант,так и со скалярными подзапросами. Предикаты EXISTS, SINGULAR, ALLANY, SOME могут быть использованы только с подзапросами.
- Константы и литералы
-
Числа, заключённые в апострофы строковые литералы, логическиезначения
TRUE
,FALSE
иUNKNOWN
, псевдозначениеNULL
. - Литералы дат и времени
-
Выражения, подобные строковым литералам, заключённые вапострофах, которые могут быть интерпретированы как значения даты,времени или даты-времени. Литералами дат могут быть строки изсимволов и чисел, такие как
TIMESTAMP '25.12.201615:30:35'
, которые могут быть преобразованы в дату, времяили дату с временем. - Мнемоники дат и времени
-
Строковый литерал с описанием желаемого значения даты и/иливремени, которое можно привести к типу даты и/или времени. Дляпримера
'NOW'
,'TODAY'
. - Контекстные переменные
-
Встроенные контекстные переменные.
- Локальные переменные
-
Локальные переменные, входные или выходные параметры PSQL модулей(хранимых процедур, триггеров, анонимных блоков PSQL).
- Позиционные параметры
-
В DSQL в качестве параметров запроса могут быть использованытолько позиционные параметры. Позиционные параметры представляютсобой знаки вопроса (?) внутри DSQL оператора. Доступ к такимпараметрам осуществляется по его номеру (позиции в запросеотносительно предыдущего позиционного параметра) поэтому ониназываются позиционными. Обычно компоненты доступа позволяютработать с именованными параметрами, которые они самипреобразовывают в позиционные.
- Подзапросы
-
Оператор SELECT заключённый в круглые скобки, который возвращаетодно единственное (скалярное) значение или множество значений (прииспользовании в предикатах существования).
- Идентификаторы функций
-
Идентификаторы встроенных или внешних функций в функциональныхвыражениях.
- Приведения типа
-
Выражение явного преобразования одного типа данных в другой с использованием
CAST
какCAST(<value> AS <datatype>)
. - Условные выражения
-
Выражение
CASE
и встроенные функцииCOALESCE
,NULLIF
. - Круглые скобки
-
Пара скобок ( … ) используются для группировки выражений.Операции внутри скобок выполняются перед операциями вне скобок. Прииспользовании вложенных скобок, сначала вычисляются значения самыхвнутренних выражений, а затем вычисления перемещаются наверх поуровням вложенности.
- Предложение
COLLATE
-
Предложение применяется к типам
CHAR
иVARCHAR
, чтобы в указаннойкодировке установить параметры сортировки, используемые присравнении. NEXT VALUE FOR sequence
-
Конструкция
NEXT VALUE FOR
позволяет получить следующее значениепоследовательности, то же самое делает встроенная функцияGEN_ID()
. - Выражение
AT
-
Выражение для изменения часового пояса даты и времени.