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

来源:互联网 发布:js 判断是否为整数 编辑:程序博客网 时间:2024/05/01 06:37

-- 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


0 0
原创粉丝点击