Основы SQL


ПРЕДИКАТЫ - часть 3


Фраза 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> верен; и неверен в ином случае.




  • Начало  Назад  Вперед



    Книжный магазин