SQL查询基础:运算符、表达式与子查询详解
1. 逻辑运算符及优先级问题
在复合条件中混合使用 AND 和 OR 运算符时可能会出现问题。例如下面的查询:
select 'is true ' as condition
from dual
where 1=1 or 1=0 and 0=1;
此复合条件由三个简单条件组成,分别为 1=1 ( TRUE )、 1=0 ( FALSE )和 0=1 ( FALSE )。最终结果为 TRUE ,这是因为结果取决于运算符优先级规则。
可以从两个方面解释这个条件:
- 1=1 OR ... : OR 运算符只要有一个操作数为 TRUE ,整体结果就是 TRUE 。
- ... AND 0=1 : AND 运算符只要有一个操作数为 FALSE ,整体结果就是 FALSE 。
为避免混淆,建议使用括号来明确操作执行顺序,例如:
--
超级会员免费看
订阅专栏 解锁全文
339

被折叠的 条评论
为什么被折叠?



