OpenXS | Проект Informix | Содержание | БНФ??? | Вниз

Выражения

<выражение> ::=
[<знак>] <элемент выражения>
{<оператор> [<знак>]<элемент выражения>}
<элемент выражения> ::=
<столбец>
| <условное выражение>
| <константа>
| <встроенная функция>
| <выражение агрегирования>
| <вызов процедуры>
| <имя переменной>
| <имя переменной процедуры>
| (<выражение>)
<оператор> ::=
+ | - | * | / | ||
<имя переменной процедуры> ::=
<идентификатор>

Столбцы

<столбец> ::=
[<уточнение имени столбца>.]<имя столбца> [ [<первый> , <последний>] ]
| [<уточнение имени столбца>.]ROWID
<уточнение имени столбца> ::=
<имя объекта>
<имя объекта> ::=
<имя таблицы>
| <имя представления>
| <имя синонима>
| <псевдоним>
<первый> ::=
<числовой литерал>
<последний> ::=
<числовой литерал>
<псевдоним> ::=
<идентификатор>

Условные выражения

<условное выражение> ::=
<выражение CASE>
| <функция NVL>
| <функция DECODE>
<выражение CASE> ::=
<общее выражение CASE>
| <линейное выражение CASE>
<общее выражение CASE> ::=
CASE <вариант> {<вариант>} [<вариант по умолчанию>] END
<вариант> ::=
WHEN <условие> THEN <выражение или NULL>
<выражение или NULL> ::=
<выражение> | NULL
<вариант по умолчанию> ::=
ELSE <выражение или NULL>
<линейное выражение CASE> ::=
CASE <выражение> <простой вариант> {<простой вариант>} [<вариант по умолчанию>] END
<простой вариант> ::=
WHEN <выражение> THEN <выражение или NULL>
<функция NVL> ::=
NVL ( <выражение> , <выражение> )
<функция DECODE> ::=
DECODE ( <выражение> <если-то-выражение> {, <если-то-выражение>} [, <иначе-выражение>] )
<если-то-выражение> ::=
<выражение> , <то-выражение>
<то-выражение> ::=
<выражение> | NULL
<иначе-выражение> ::=
<выражение> | NULL

Константы

<константа> ::=
<числовой литерал>
| <строка в кавычках>
| <интервальный литерал>
| <литерал типа даты и времени>
| CURRENT [<уточнение полей даты и времени>]
| USER
| TODAY
| DBSERVERNAME
| SITENAME
| <числовой литерал> UNITS <единица даты или времени>
<единица даты или времени> ::=
YEAR | MONTH | DAY | HOUR
| MINUTE | SECOND | FRACTION [<цифра>]

Выражения агрегирования

<выражение агрегирования> ::=
COUNT(*)
| COUNT (<уточнение строк>
  [<уточнение имени столбца>.]<имя столбца>)
| COUNT ([ALL] [<уточнение имени столбца>.]<имя столбца>)
| <функция агрегирования> ([<уточнение строк>]
  [<уточнение имени столбца>.]<имя столбца>)
| <расширенная функция агрегирования> ([ALL] <выражение (подмножество)>)
<уточнение строк> ::=
DISTINCT | UNIQUE
<функция агрегирования> ::=
AVG | MAX | MIN | SUM
<расширенная функция агрегирования> ::=
<функция агрегирования> | RANGE | STDEV | VARIANCE

Примечание
Аргументом функции агрегирования, в общем случае, не может быть выражение, содержащее функцию агрегирования.

Вызовы процедур

<вызов процедуры> ::=
<имя процедуры> ( [<список аргументов>] )
<список аргументов> ::=
<аргумент> {, <аргумент>}
<аргумент> ::=
[<имя параметра> = ] <значение аргумента>
<имя параметра> ::=
<идентификатор>
<значение аргумента> ::=
<выражение>
| <ограниченный оператор SELECT>
  OpenXS | Проект Informix | Содержание | БНФ??? | Текст | Вверх
 
Rambler's Top100 Rambler's Top100
Copyright (c) 1999-2001 by V. Kravchuk