Erp100论坛's Archiver

xiangzhao 发表于 2008-7-12 21:45

in和or效率是一样的吗?

select * from table_name
where col_name in ('a','b','c','d,'e,'f')

select * from table_name
where (col_name = 'a' or
           col_name = 'b' or
           col_name = 'c' or
           col_name = 'd' or
           col_name = 'e' or
           col_name = 'f')
这两个语句的效率一样吗?

xiangzhao 发表于 2008-7-12 21:45

注意对于in的结果集中存在null的情况,与or的写法是不等价的!
效率就不得而知了,没有看到过Oracle的文档这样说过,可能取决于具体的Oracle实现。

iamdddboy 发表于 2008-8-17 02:09

oracle 会把in 转换为 or来执行,,这样一来,,in应该没有or有效率,,但是这点效率可以忽略不计

xiangzhao 发表于 2008-9-4 02:03

原来如此

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2007 Comsenz Inc.