目录
(一)前言
(二)And和Or的基本概念
1. 两个运算符的用途
2. 两个运算符的简述
(三)经典案列
1. AND 运算符实例
2. OR 运算符实例
3. 结合 AND 和 OR 运算符
(一)前言
上一篇中我们学习了在Select语句后的Where子句中加入一个过滤条件去筛选部分数据,不过实际工作中一个过滤条件肯定是多数情况下无法满足我们的筛选要求的,两个三个甚至多个筛选条件的情况层出不穷。本篇中我将结合几个例子展开说明下And和Or的用法。
(二)And和Or的基本概念
1. 两个运算符的用途
AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。
2. 两个运算符的简述
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
运算符 | 条件真伪 | 结果 |
AND | 所有条件全为TRUE | TRUE |
AND | 至少有一个条件为FALSE | FALSE |
OR | 所有条件全为FALSE | FALSE |
OR | 至少有一个条件为TRUE | TRUE |
(三)经典案列
1. AND 运算符实例
使用 AND 来显示所有价格为 79 并且Source of sales为 "Shipping" 的记录。
select * from [dbo].[spring05] where Price = 79 and [Source of sales] = 'Shipping'
2. OR 运算符实例
使用 OR 来显示所有价格为 79 或者bp为 0的人。
select * from [dbo].[spring05] where Price = 79 or Bp = 0
3. 结合 AND 和 OR 运算符
我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式)。此处我们筛选价格为79或者35,同时BP又等于0的记录。
select * from [dbo].[spring05] where (Price = 79 or Price = 35) and bp = 0
扩展知识点---AND和OR的优先级
在上面的例子中我们用括号先确定了计算的优先级,即括号内的or语句先运算然后再计算AND。如果我们去掉括号,那SQL语句就变得如下:
select * from [dbo].[spring05] where Price = 79 or Price = 35 and bp = 0
如果没有括号,Where后的子句就变为A or B and C,在SQL中and的优先级高于or,所以先计算B and C再用这个计算结果去和A做or结合得出最终结果。