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 ...
随机推荐
- python爬取b站排行榜
爬取b站排行榜并存到mysql中 目的 b站是我平时看得最多的一个网站,最近接到了一个爬虫的课设.首先要选择一个网站,并对其进行爬取,最后将该网站的数据存储并使其可视化. 网站的结构 目标网站:bil ...
- java 覆盖
作者:又见那斯 java中覆盖基于面向对象三大特征之:继承,同时又和另一特征:多态有重要的联系,本文中讨论的有关java中覆盖的一些知识,其实在写代码的时候或许不会用到,不过知道的话总会有用处.如有错 ...
- 【转】MySQL my.cnf 参数 详解
[client] port = 3306 //客户端端口号为3306 socket = /tmp/mysql.sock //套接字文件(sockets),这种文件一般用在网络上的资料套 ...
- 剑指offer-二叉树的镜像-python
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...
- Bootstrap前端框架快速入门专题
1.Bootstrap简介 Bootstrap,出自自 Twitter,是目前最受欢迎的前端框架. Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的前端框架,它简洁灵活,使得 W ...
- <img> 标签的 src 属性
src属性 加载的时候就会请求 1.servlet生成一个图片 2.你直接输入servlet的连接看一下,就是一个图片,和我们自己发布到服务器的一样. 3.页面加载时,会访问这个servelt连接,自 ...
- if_else
//if.......else if......else //object IF_ELSE {// def main(args:Array[String]){// var x=30// if (x== ...
- RetentionPolicy.SOURCE注解应用
Lombok原理分析: https://www.jianshu.com/p/fc06578e805a
- CSP2019 前 随感
因为博主并没有任何的 oi 水平.文化课水平以及作文水平,下面的东西都是对辞藻和古诗词的堆砌. 不知不觉又到了新一年的 noip 了. 好像是去年的双十一的晚上,noip 考挂的我绝望地写了 bzoj ...
- bzoj3754 Tree之最小方差树 最小生成树+推性质
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=3754 题解 感觉这个思路挺神仙的. 后悔没有好好观察题目的数据范围,一直把 \(n\) 和 \ ...