oracle or 运算,Oracle Or子句

Oracle Or子句

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表进行演示:

9aa3a77bd80887fa16c158875e90f209.png

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'

执行上面的代码可以得到以下结果:

f91ac6f835704bed7fb7021fbde55ad7.png

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;

执行上面的代码可以得到以下结果:

e78d7f6aaf406ec89399576aaf0d979b.png

可以使用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;

执行上面的代码可以得到以下结果:

9f3b01fb75b06ccb282a44fed4d8048b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值