Системы обработки информации - язык баз данных SQL

<Условие поиска> (<search condition>)


Функция

Специфицирует условие, которое может быть "true", "false" или "unknown" в зависимости от результата применения булевских операторов к указанным условиям.

Формат

<search condition> ::=

<boolean term>

| <search condition> OR <boolean term>

<boolean term> ::=

<boolean factor>

| <boolean term> AND <boolean factor>

<boolean factor> ::=

[NOT] <boolean primary>

<boolean primary> ::=

<predicate> | (<search condition>)



Синтаксические правила

  • <Спецификация столбца> (<column specification>) или <выражение, вырабатывающее значение> (<value expression>), указанные в <условии поиска> (<search condition>), непосредственно содержатся в этом <условии поиска> (<search condition>), если <спецификация столбца> (<column specification>) или <выражение, вырабатывающее значение> (<value expression>) не указываются внутри <спецификации функции над множеством> (<set function specification>) или <подзапроса> (<subquery>) этого <условия поиска> (<search condition>).
  • Общие правила

  • Результат получается применением указанных булевских операторов к условиям, являющимся результатами применения каждого указанного <предиката> (<predicate>) к данной строке таблицы или данной группе сгруппированной таблицы. Если булевские операторы не указаны, то результатом <условия поиска> (<search condition>) является результат указанного <предиката> (<predicate>).
  • NOT(true) есть false, NOT(false) есть true и NOT(unknown) есть unknown. AND и OR определяются следующими таблицами истинности:

    ЪДДДДДДДДВДДДДДДДДВДДДДДДДДВДДДДДДДї

    іAND іtrue іfalse іunknownі

    ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДґ

    іtrue іtrue іfalse іunknownі

    ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДґ

    іfalse іfalse іfalse іfalse і

    ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДґ

    іunknown іunknown іfalse іunknownі


    АДДДДДДДДБДДДДДДДДБДДДДДДДДБДДДДДДДЩ

    ЪДДДДДДДДВДДДДДДДДВДДДДДДДДВДДДДДДДї

    іOR іtrue іfalse іunknownі

    ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДґ

    іtrue іtrue іtrue іtrue і

    ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДґ

    іfalse іtrue іfalse іunknownі

    ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДґ

    іunknown іtrue іunknown іunknownі

    АДДДДДДДДБДДДДДДДДБДДДДДДДДБДДДДДДДЩ


  • Сначала вычисляются выражения в скобках. Когда порядок вычисления не определяется скобками, NOT применяется перед AND, AND применяется перед OR, и операторы с одинаковым уровнем предшествования применяются слева направо.


  • Когда <условие поиска> (<search condition>) применяется к строке таблицы, каждая ссылка на столбец этой таблицы через <спецификацию столбца> (<column specification>), прямо содержащуюся в <условии поиска> (<search condition>), является ссылкой на значение этого столбца в этой строке.



  • Содержание раздела