Oracle Or子句

在本教程中,我们来学习如何使用Oracle OR运算符来组合两个或更多的布尔表达式。

Oracle OR运算符介绍

OR运算符是一个逻辑运算符,它组合了布尔表达式,如果其中一个表达式为真(true),则返回true

以下说明OR运算符的语法:

expression_1 AND expression_2

下表显示了OR运算符在truefalseNULL值之间的结果。

TRUE FALSE NULL
TRUE TRUE TRUE TRUE
FALSE TRUE FALSE NULL
NULL TRUE NULL NULL

我们经常在SELECTDELETEUPDATE语句的WHERE子句中使用OR运算符来形成过滤数据的条件。

如果在语句中使用多个逻辑运算符,则Oracle会在评估NOTAND运算符之后评估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,6162的订单:

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运算符与其他逻辑运算符(如ANDNOT)结合起来,形成一个条件。 例如,以下查询将返回属于客户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运算符来组合两个或更多的布尔表达式。

原文地址:https://www.cnblogs.com/youseiraws/p/8600704.html

时间: 2024-10-30 03:22:46

Oracle Or子句的相关文章

Oracle In子句

Oracle In子句 作者:初生不惑 Oracle基础 评论:0 条 Oracle技术QQ群:175248146 在本教程中,您将学习如何使用Oracle IN运算符来确定值是否与列表或子查询中的任何值相匹配. Oracle IN操作符介绍 Oracle IN运算符确定值是否匹配列表或子查询中的任何值. 注:子查询是嵌套在另一个查询中的查询,可通过在子查询教程中了解子查询用法. 确定表达式是否与值列表匹配的Oracle IN运算符的语法如下所示: expression [NOT] IN (v1

Oracle Distinct子句

在本教程中,将学习如何使用Oracle SELECT DISTINCT语句从表中查询不同的数据. Oracle SELECT DISTINCT语句简介 在SELECT语句中使用DISTINCT子句来过滤结果集中的重复行.它确保在SELECT子句中返回指定的一列或多列的值是唯一的. 以下说明了SELECT DISTINCT语句的语法: SELECT DISTINCT column_1 FROM table_name; 在上面语法中,table_name表的column_1列中的值将进行比较以过滤重

Oracle And子句

在本教程中,将学习如何使用Oracle AND运算符来组合两个或更多的布尔表达式. Oracle AND运算符介绍 AND运算符是一个逻辑运算符,它组合了布尔表达式,如果两个表达式都为真,则返回true. 如果其中一个表达式为假,则AND运算符返回false. AND运算符的语法如下所示: expression_1 AND expression_2 下表说明了使用AND运算符合并true,false和NULL值时的结果 - 值 TRUE FALSE NULL TRUE TRUE FALSE NU

Oracle Like子句

在本教程中,您将学习如何使用Oracle LIKE运算符来测试列中的值是否与指定的模式匹配. Oracle LIKE运算符介绍 有时候,想根据指定的模式来查询数据. 例如,您可能希望查找姓氏以St开头或姓氏以er结尾的联系人.在这种情况下,可使用Oracle LIKE运算符. Oracle LIKE运算符的语法如下所示: expresion [NOT] LIKE pattern [ ESCAPE escape_characters ] 在上面的语法中, expression - 该表达式是一个列

Oracle HAVING子句 - 转

使用 HAVING 子句选择行 HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似.WHERE 子句搜索条件在进行分组操作之前应用:而 HAVING 搜索条件在进行分组操作之后应用.HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数.HAVING 子句可以引用选择列表中出现的任意项. 下面的查询得到本年度截止到目前的销售额超过 $40,000 的出版商: USE pubs SELECT pub_id, t

数据库与SQL语言<4>

s数据库面试主要包含范式.事务.存储过程.SQL语言,以及索引等诸多方面. 1.数据库理论 第一范式:关系模式R的所有属性的值域中每一个值都是不可再分解的值,则称R属于第一范式. 第二范式:如果关系型数据库属于第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键,则称第二范式. 第三范式:如果关系型数据库是第二范式,且每个非主属性每个非主属性都不传递依赖于R的候选键,则称R的第三范式. BC范式:关系模式属于第一范式,且每个属性都不传递依赖于R的候选键. 第四范式:R是一个关系模式,D是

Sql- Group By ,Where,having用法

Group by,where,having 是数据库查询中最常用的几个关键字.在工作中,时常用到,前面遇到一个问题,一个查询中使用了where ,group by ,having及聚集函数时 ,执行顺序是怎么样的?为了回答这个问题,将这个三个关键字的用法整理一下. Where:数据库中常用的是Where关键字,用于在初始表中筛选查询.如下面这个例子,从user表中查询出userDepartmentId等于2的数据 Select * from dbo.user where userDepartme

sql中的group by 和 having 用法解析

--sql中的group by 用法解析:-- Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”.--它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理.--注意:group by 是先排序后分组:--举例子说明:如果要用到group by 一般用到的就是“每这个字” 例如说明现在有一个这样的表:每个部门有多少人 就要用到分组的技术select DepartmentID as '部门名称',COUNT(*) a

sql的 select

select *(列名) from table_name(表名) where column_name operator value . select * from stock_information where stockid = str(nid) sql中的通配符:   通配符 描述 % 匹配零个及多个任意字符 _ 仅替代一个字符 [charlist] 字符列中的任何单一字符 [^charlist]  或者       [!charlist] 不在字符列中的任何单一字符 只能在使用 like