Сейчас на сайте
Сейчас на сайте 0 пользователей и 0 гостей.

Синтаксис ( нестандартный )

Синтаксис

< value expresslon > < relational op > < value expresslon > |
< subquery >
< relatlonal op > :: =
=
| <
| >
| <
| >=
| < >

Если либо < value expression > = NULL, либо < comparison predicate > = неизвестно; другими словами, это верно если сравнение верно или неверно если сравнение неверно.
< relational op > имеет стандартные математические значения для числовых значений; для других типов значений, эти значения определяются конкретной реализацией.
Оба < value expression > должны иметь сравнимые типы данных. Если подзапрос < subquery > используется, он должен содержать одно выражение < value expression > в предложении SELECT, чье значение будет заменять второе выражение < value expression > в предикате сравнения < comparision predicate >, каждый раз когда < subquery > действительно выполяняется.

< between predicate >

Синтаксис

< value expression > [NOT] BETWEEN < value expression >
AND < value expression >

< between predicate > - A BETWEEN B AND C , имеет такое же значение что и < predicate > - ( A >= B AND < = C). < between predicate > для которого A NOT BETWEEN B AND C, имеет такое же значение что и NOT ( BETWEEN B AND C). < value expression > может быть выведено с помощью нестандартного запроса < subquery > ( *nonstandard* ).

< in prediicate >

Синтаксис

< value expression > [NOT] IN < value list > | < subquery >

Список значений < value list > будет состоять из одного или более перечисленных значений в круглых скобках и отделяемых запятыми, которые имеют сравнимый с < value expression > тип данных. Если используется подзапрос < subquery >, он должен содержать только одно выражение < value expression > в предложении SELECT ( возможно и больше, но это уже будет вне стандарта ANSI ). Подзапрос < subquery > фактически, выполяняется отдельно для каждой строки-кандидата основного запроса, и значения которые он выведет, будут составлять список значений < value list > для этой строки. В любом случае, предикат < in predicate > будет верен если выражение < value expression > представленное в списке значений < value list >, если не указан NOT. Фраза A NOT IN (B, C) является эквивалентом фразы NOT (A IN (B, C)).

< like predicate >

Синтаксис

< charvalue > [NOT] LIKE < pattern > [ESCAPE
< escapechar >]

< charvalue > - это любое *нестандартное* выражение < value expression > алфавитно-цифрового типа. < charvalue > может быть, в соответствии со стандартом, только определенным столбцом < column spec >. Образец < pattern > состоит из строки которая будет проверена на совпадение с < charvalue >. Символ окончания < escapechar > - это одиночный алфавитно-цифровой символ. Совпадение произойдет, если верны следующие условия :

 

  • Для каждого символа подчеркивания < underscore > в образце < pattern > которая не предшествует символу окончания < escapechar >, имеется один соответствующий ему символ < charvalue >.
  • Для каждого < percent sign > в образце < pattern >, который не предшествует < escapechar >, имеются нули или более соответствующие символы в < charvalue >.
  • Для каждого < escapechar > в < pattern > который не предшествует другому < escapechar >, нет никакого соответствующего символа в < charvalue >.
  • Для каждого иного символа в < pattern >, один и тот же символ устанавливается у соответствующей отметке в < charvalue >.
  • Если совпадение произошло, < like predicate > - верен, если не был указан NOT. Фраза NOT LIKE 'текст' - эквивалентна NOT ( A LIKE 'текст').

< null predicate >

Синтаксис

< column spec > IS [NOT] NULL

< column spec > = IS NULL, если NULL значение представлено в этом столбце. Это сделает < null predicate > верным если не указан NULL. Фраза < column spec > IS NOT NULL, имеет тот же результат что и NOT ( < column spec > IS NULL ).

< quantified predicate >

Синтаксис

< value expression > < relational op >
< quantifier > < subquery >
< quantifier > :: = ANY | ALL | SOME

Предложение SELECT подзапроса < subquery > должно содержать одно и только одно выражение значения < value expression >. Все значения выведенные подзапросом < subquery > составляют набор результатов < result set >. < value expression > сравнивается, Используя оператор связи < relational operator >, с каждым членом набора результатов < result set >. Это сравнение оценивается следующим образом:

· Если < quantifier > = ALL, и каждый член набора результатов < result set > делает это сравнение верным, < quantified predicate > - верен.

· Если < quantifier > = ANY, и имеется по крайней мере один член из набора результатов < result set > , который делает верным это сравнение, то < quantified predicate > является верным.

· Если набор результатов < result set > пуст, то < quantified predicate > верен, если < quantifier > = ALL , и неверен если иначе.

· Если < quantifier > = SOME, эффект - тот же что и для ANY.

· Если < quantified predicate > не верен и не неверен, он - неизвестен.

< exists predicate >

Синтаксис :

EXISTS (< subquery >)

Если подзапрос < subquery > выводит одну или более строк вывода, < exists predicate > - верен; и неверен если иначе.