当前位置: 首页 > article >正文

Oracle Or子句

OR是Oracle中的逻辑运算符

Oracle OR运算符语法

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

以下是OR运算符的语法:

expression_1 OR expression_2

下表显示了OR运算符在true,false和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运算符返回的结果相同。

  1. 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;

执行上面的代码可以得到以下结果:
在这里插入图片描述


http://www.kler.cn/a/391019.html

相关文章:

  • 2411C++,C++26反射示例
  • 除了 Postman,还有什么好用的 API 调试工具吗
  • C++初阶——list
  • DApp开发:定制化解决方案与源码部署的一站式指南
  • jwt用户登录,网关给微服务传递用户信息,以及微服务间feign调用传递用户信息
  • Nginx配置自带的stub状态实现活动监控指标
  • 网络安全名词解释
  • FPGA 第二讲 初始FPGA
  • 数据分析那些事儿——关于A/B实验
  • 【LeetCode】【算法】34. 在排序数组中查找元素的第一个和最后一个位置
  • 微信小程序的云开发
  • 13、DHCP和FTP协议
  • 利用AI制作《职业生涯规划PPT》,10分钟完成
  • 【Linux】————信号
  • leetcode21:合并两个有序列表
  • [Linux]IO多路转接(上)
  • 微波无源器件 OMT1 一种用于倍频程接收机前端的十字转门四脊正交模耦合器(24-51GHz)
  • Java-03
  • SQL50题
  • ubuntu 20.04 NVIDIA驱动、cuda、cuDNN安装
  • Python 类私化有笔记
  • 【深度学习遥感分割|论文解读2】UNetFormer:一种类UNet的Transformer,用于高效的遥感城市场景图像语义分割
  • 量化交易系统开发-实时行情自动化交易-3.4.2.2.Okex交易数据
  • 从0开始搭建一个生产级SpringBoot2.0.X项目(十三)SpringBoot连接MongoDB
  • 请求接口时跨域问题详细解决方案
  • 前端开发调试之 PC 端调试