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

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 11g安装教程
- Oracle Like子句
- Oracle COMMIT语句(提交事务)
- Oracle ROLLBACK语句(回滚事务)
- Oracle 外键创建
- Oracle 级联删除外键
- Oracle 启用外键
- Oracle Initcap()函数
- Memcached set 命令
- DB2缓冲池
- DB2序列
- DB2数据库安全
- PLSQL一些常用知识点梳理总结
- Oracle中的table()函数使用
- Oracle行级触发器的使用操作
- 关于ORA-04091异常的出现原因分析及解决方案
- Oracle 19c的参数sec_case_sensitive_logon与ORA-01017错误问题分析
- 关于oracle逻辑备份exp导出指定表名时需要加括号的问题解析
- Oracle中ROW_NUMBER()OVER()函数用法实例讲解
- Oracle常见分析函数实例详解


