您的位置:首页 > 数据库 > Oracle

Oracle 尽量避免在SQL语句中使用 OR

2015-06-19 14:01 477 查看
-- Start

在SQL 语句中应该尽量避免使用OR,因为这样做会影响SQL 语句的性能。考虑下面的情况:

CREATE TABLE EMPLOYEE
(
NAME     VARCHAR2(20) NOT NULL,---姓名
BIRTHDAY DATE---生日
);


现在有这样一个问题:让你查找一下生日是1949-10-1(共和国同龄人)或1978-12-18(十一届三中全会召开时间)的人,怎么办?我们很自然就会把这句话翻译成如下SQL 语句:

SELECT * FROM EMPLOYEE WHERE BIRTHDAY = DATE '1949-10-01' OR BIRTHDAY = DATE '1978-12-18';


这样做完全正确,可是性能不好,你的思想被这个问题束缚了,我们还可以这么写:

SELECT * FROM EMPLOYEE WHERE BIRTHDAY IN (DATE '1949-10-01',DATE '1978-12-18');


有时候,我们不要把自己束缚在问题里面。

-- 更多参见:Oracle SQL 精萃

-- 声明:转载请注明出处

-- Last edited on 2015-06-19

-- Created by ShangBo on 2015-06-19

-- End
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: