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常见分析函数实例详解