Стандарты языка реляционных баз данных SQL

       

Предикат in


Предикат in определяется следующими синтаксическими правилами:

<in predicate> ::=

<value expression> [NOT] IN

{<subquery> | (<in value list>)}

<in value list> ::=

<value specification>

{,<value specification>}...

Типы левого операнда и значений из списка правого операнда (напомним, что результирующая таблица подзапроса должна содержать ровно один столбец) должны быть сравнимыми.

Значение предиката равно true в том и только в том случае, когда значение левого операнда совпадает хотя бы с одним значением списка правого операнда. Если список правого операнда пуст (так может быть, если правый операнд задается подзапросом) или значение "подразумеваемого" предиката сравнения x = y (где x - значение арифметического выражения левого операнда) равно false для каждого элемента y списка правого операнда, то значение предиката in равно false. В противном случае значение предиката in равно unknown (например, так может быть, если значение левого операнда есть NULL). По определению значение предиката "x NOT IN S" равно значению предиката "NOT (x IN S)".



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