testbook

逻辑运算符

AND, OR, |, NOT, !, IN, NOT IN, [NOT] EXISTS
操作符返回类型描述
A AND B Boolean 返回A和B逻辑与的结果
说明:
       A和B必须是Boolean类型,返回二者的逻辑与的结果。即A和B同时正确时,返回TRUE,否则FALSE。如果A或B值为NULL,返回NULL。

举例:
select 1==1 and true from src limit 1;
Result: true


操作符返回类型描述
A OR B Boolean 返回A和B逻辑或的结果
说明:
       A和B必须是Boolean类型,返回二者的逻辑或的结果。即A或B正确,或两者同时正确返返回TRUE,否则FALSE。如果A和B值同时为NULL,返回NULL。

举例:
select 1==1 or true from src limit 1;
Result: true


操作符返回类型描述
NOT A Boolean 对A的逻辑布尔值求反
说明:
       A必须是Boolean类型,如果A为NULL或错误的时候返回TURE,否则返回FALSE。

举例:
select not true from src limit 1;
Result: false


操作符返回类型描述
!A Boolean 对A的逻辑布尔值求反
说明:
       用法和'NOT'一致。

举例:
select !true from src limit 1;
Result: false


操作符返回类型描述
A IN (val1, val2, ...) Boolean 判断A是否是指定值中的一个
说明:
       A可以是除了Boolean之外的所有基本类型。如果A和指定值中的任何一个相等,即返回true,反之返回false。

举例:
select '1' in (1,2,3) from src limit 1;
Result: true


操作符返回类型描述
A NOT IN (val1, val2, ...) Boolean 判断A是否不是指定值中的一个
说明:
       A可以是除了Boolean之外的所有基本类型。如果A和指定值中的任何值都不相等,返回true,反之返回false。

举例:
select '1' not in (1,2,3) from src limit 1;
Result: false


操作符返回类型描述
[NOT] EXISTS (subquery) Boolean 判断子查询中是否有结果
说明:
       只要子查询返回了至少一列的值,返回true,反之返回false。

举例:
select 1 from src s1 where exists (select 1 from src s2 where s1.a=s2.a) limit 1;
Result: 1