
前面几篇帖子介绍了GaussDB的数据类型以及几种常见数据类型的对比,接下来几篇帖子开始介绍一下GaussDB的操作符,今天这篇帖子先介绍一下GaussDB的逻辑操作符。
一、逻辑操作符介绍
GaussDB支持三种常用的逻辑操作符:
这些操作符用于组合布尔表达式,其运算结果可以是三个值之一:
注意:NULL在逻辑运算中不等于FALSE,它代表的是信息缺失或未知状态。
运算优先级
逻辑操作符的优先级从高到低为:
NOT>AND>OR
例如:
A OR b AND c
等价于:
A OR (b AND c)
运算规则表(三值逻辑)
a | b | a ANDb | a ORb | NOTa |
TRUE | TRUE | TRUE | TRUE | FALSE |
TRUE | FALSE | FALSE | TRUE | FALSE |
TRUE | NULL | NULL | TRUE | FALSE |
FALSE | FALSE | FALSE | FALSE | TRUE |
FALSE | NULL | FALSE | NULL | TRUE |
NULL | NULL | NULL | NULL | NULL |
二、核心规则
AND规则
示例:TRUE AND NULL→NULL(“真且未知”=未知)
OR规则
NOT规则
重要说明
a AND b≡b AND a
a OR b≡b OR a
实际应用示例
--查询年龄大于20且不是学生的记录
SELECT * FROM users
WHERE age>20 AND is_student IS FALSE;
--查询年龄小于18或职业为空的用户
SELECT * FROM users
WHERE age<18 OR job IS NULL;
三、总结
特性 | 说明 |
操作符 | AND,OR,NOT |
返回值 | TRUE,FALSE,NULL |
优先级 | NOT>AND>OR |
NULL含义 | 表示“未知”,非“假” |
关键规则 | AND要求全真才真;OR只要一真即真;NOT否定已知值,未知仍未知 |
提示:在编写复杂查询时,一定要注意NULL对逻辑判断的影响,必要的时候使用COALESCE()或ISNULL显式处理。
以上内容均为本人学习GaussDB过程中,针对实操遇到的问题、学习产生的疑惑所做的个人总结与经验梳理,初衷是希望能为同路学习者提供一点参考和帮助。内容仅作交流学习之用,若有疏漏或不当之处,欢迎大家指正交流。
本文由le就这样吧原创发布于 社区,未经作者许可,禁止转载。

点击小程序查看更多内容



