Oracle Or子句
Oracle Or子句
在本教程中,我们来学习如何使用Oracle OR运算符来组合两个或更多的布尔表达式。
Oracle OR运算符介绍
OR运算符是一个逻辑运算符,它组合了布尔表达式,如果其中一个表达式为真(true),则返回true。
以下说明OR运算符的语法:
expression_1 AND expression_2
下表显示了OR运算符在true,false和NULL值之间的结果。
| 值 | TRUE | FALSE | NULL |
|---|---|---|---|
| TRUE | TRUE | TRUE | TRUE |
| FALSE | TRUE | FALSE | NULL |
| NULL | TRUE | NULL | NULL |
我们经常在SELECT,DELETE和UPDATE语句的WHERE子句中使用OR运算符来形成过滤数据的条件。
如果在语句中使用多个逻辑运算符,则Oracle会在评估NOT和AND运算符之后评估OR运算符。 但是,可以使用括号更改评估的顺序。
Oracle OR运算符的例子
我们将使用示例数据库中的orders表进行演示。表结构如下图所示 -

1. Oracle OR运算符组合两个布尔表达式的例子
以下示例查找状态为挂起(Pending)或取消(Canceled)的订单,参考以下查询语句 -
SELECT
order_id,
customer_id,
status,
TO_CHAR(order_date, 'YYYY-MM-DD') AS order_date
FROM
orders
WHERE
status = 'Pending'
OR status = 'Canceled'
ORDER BY
order_date DESC;
在这个例子中,语句返回了满足下列表达式之一的所有订单:
status = 'Pending'
-- 或
status = 'Canceled'
执行上面查询语句,得到以下结果 -

2. Oracle OR运算符结合两个以上的布尔表达式的例子
我们经常使用OR运算符来组合两个以上的布尔表达式。 例如,以下语句检索负责以下销售员ID是60,61或62的订单:
SELECT
order_id,
customer_id,
status,
salesman_id,
TO_CHAR(order_date, 'YYYY-MM-DD') AS order_date
FROM
orders
WHERE
salesman_id = 60
OR salesman_id = 61
OR salesman_id = 62
ORDER BY
order_date DESC;
执行上面查询语句,得到以下结果 -

可以使用IN运算符来代替使用多个OR运算符,如下例所示:
SELECT
order_id,
customer_id,
status,
salesman_id,
TO_CHAR(order_date, 'YYYY-MM-DD') AS order_date
FROM
orders
WHERE
salesman_id IN(60, 61, 62)
ORDER BY
order_date DESC;
该查询返回的结果与使用上面的OR运算符返回的结果相同。
3. Oracle OR运算符与AND运算符结合使用的示例
可以将OR运算符与其他逻辑运算符(如AND和NOT)结合起来,形成一个条件。 例如,以下查询将返回属于客户ID为44并且已取消(Canceled)或挂起(Pending)状态的订单。参考以下查询语句 -
SELECT
order_id,
customer_id,
status,
salesman_id,
TO_CHAR(order_date, 'YYYY-MM-DD') AS order_date
FROM
orders
WHERE
( status = 'Canceled' OR status = 'Pending')
AND customer_id = 44
ORDER BY
order_date;
执行上面查询语句,得到以下结果 -

在本教程中,您已学习如何使用Oracle OR运算符来组合两个或更多的布尔表达式。
Oracle Or子句的更多相关文章
- Oracle Like子句
Oracle Like子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,您将学习如何使用Oracle LIKE运算符来测试列中的值是否与指定 ...
- Oracle Between子句
Oracle Between子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,您将学习如何使用Oracle BETWEEN运算符来选择值在一 ...
- Oracle In子句
Oracle In子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,您将学习如何使用Oracle IN运算符来确定值是否与列表或子查询中的任 ...
- Oracle Fetch子句
Oracle Fetch子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,将学习如何使用Oracle FETCH子句来限制查询返回的行数. ...
- Oracle And子句
Oracle And子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,将学习如何使用Oracle AND运算符来组合两个或更多的布尔表达式. ...
- Oracle Where子句
Oracle Where子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,将学习如何使用Oracle WHERE子句来指定过滤的条件返回符合 ...
- oracle排序子句的特殊写法与ORA-01785错误
刚刚写的SQL语句在执行的时候报[ORA-01785: ORDER BY item must be the number of a SELECT-list expression]错误,于是自己百度了一 ...
- oracle SELECT子句中避免使用 ‘ * ‘
当你想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用 ‘*’ 是一个方便的方法. 不幸的是,这是一个非常低效的方法. 实际上,ORACLE在解析的过程中, 会将’*’ 依次转换成所 ...
- oracle WHERE子句中的连接顺序
ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. 例如: (低效,执行时间1 ...
随机推荐
- 深入理解java:2.3. 并发编程 java.util.concurrent包
JUC java.util.concurrent包, 这个包是从JDK1.5开始引入的,在此之前,这个包独立存在着,它是由Doug Lea开发的,名字叫backport-util-concurrent ...
- [转帖]CBO和RBO
http://www.itpub.net/thread-263395-1-1.html 参数不能随便改啊.. optimizer_features_enable('8.1.7') ORACLE 提供了 ...
- MySQL服务意外停止
先说一下,发现MySQL服务停了,启动就又好了,但是好奇服务意外停止的原因,所以看了一下MySQL的错误日志. 但是到底是哪个错误导致MySQL服务意外终止,还没有定论,故有了此篇文章,还望知道原因的 ...
- python中django中间件
一.中间件 所谓的中间件,就是存在socket和视图函数中间的一种相当于过滤的机构. 中间件共分为: (1)process_request(self,request) (2)process_view( ...
- 输入某年某月某日,判断这一天是这一年的第几天?(可以用 Python 标准 库)
import datetime def dayofyear(): year = input("请输入年份:") month = input("请输入月份:") ...
- 2019 湖湘杯 Reverse WP
0x01 arguement 下载链接:https://www.lanzous.com/i7atyhc 1.准备 获取到信息: 32位的文件 upx加密文件 在控制台打开文件 使用"upx ...
- “百度杯”CTF比赛 十一月场--CrackMe01
测试文件:https://static2.ichunqiu.com/icq/resources/fileupload/CTF/BSRC/BSRC-11-3/CrackMe01_97D2BF0DBD2E ...
- Maven下载清除jar包
maven jar包下载命令行方式 在STS中下载JAR包时经常卡住无法继续下载,这时可以用命令行方式进行下载.在终端中今入到该项目的根目录下,然后mvn clean;mvn install;等待下载 ...
- Java多线程(1)
线程与进程 进程:程序的执行过程 线程:线程共享进程的资源 Java多线程 实现的方式 继承Tread类:使用getName()获取当前线程名 实现Runnable接口:Thread.currentT ...
- Spring基础19——Spring中几种注解的区别
1.@Autowired:注解是用来装配bean的,需要注入的bean必须是已经被IOC容器创建的bean,这个注解是利用类型装配的,如果容器中出现一个以上要装配的类或其子类就需要用@Qualifie ...