解决问题——Oracle 在使用and or时需要注意

Posted 浅殇忆流年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决问题——Oracle 在使用and or时需要注意相关的知识,希望对你有一定的参考价值。

在一次项目的开发过程中,涉及到多张表的联合查询,代码在本地自测的时候并出现锁表的情况,把sql单独抽出来,仔细排查,发现在sql中and or 同时使用的时候,忘记了加括号导致的,导致查询的数据量剧增,导致锁表。

当我们同时使用and、or关键字的时候,需要注意:

  • 两者一起使用的时候,and 的优先级高于or

示例:

select * from emp where sal < 1500 or sal >= 2000 and job = 'analyst';

上述等价于:

select * from emp where sal < 1500 or (sal >= 2000 and job = 'analyst');

而不是我们所预期的:

select * from emp where (sal < 1500 or sal >= 2000) and job = 'analyst';

创作打卡挑战赛 赢取流量/现金/CSDN周边激励大奖

以上是关于解决问题——Oracle 在使用and or时需要注意的主要内容,如果未能解决你的问题,请参考以下文章

解决oracle数据库 ora-00054:resource busy and acquire with NOWAIT specified 错误

oracle查询相关注意点

oracle where后 and 和 or 的执行顺序

使用like 时 and 和or表示多条件查询

Oracle Regexp_like 使用 AND 子句

在 hive 中使用多个 or 和 and 条件时出错