逻辑运算符
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