在oracle 中,查询语句用 in 和 or 查询的结果条数不一样。or 的大于 in 的。 请问这是什么原因?

作者&投稿:舟瑗 (若有异议请与网页底部的电邮联系)
在sql语句中 为什么where 字段=‘’or 字段=‘’与where 字段in(‘’,‘’)查询结果不同?~

sqlserver里and的优先级是大于or的,可以用括号来改变顺序,所以第一种写法改成这样 (仓库号='AB0002' or 仓库号='AB0003') and 工资<5000

这两个效率都不高。一般in (select)这样的语句可以用exists代替,效率要高很多。
如果比较or和in,要看你语句的具体情况了。

先试试不要and a_devtestdt is null 这句、查看两段代码结果。

再试试下面
select dept from A
where (status='[D2]方案设计阶段' or status='[D2]方案审核中' or status ='[D2]开发中' or status='[D2]开发完成' or status='[D2]单元测试进行中')
and a_devtestdt is null
-----------------------
select dept from A
where status in('[D2]方案设计阶段','[D2]方案审核中','[D2]开发中','[D2]开发完成','[D2]单元测试进行中')
and a_devtestdt is null

一般有 OR 和 AND 同时出现的where 条件、最好加括号区分

如果你把or的条件用括号包裹起来,这样试试应该能看出问题来a and b or c和a and (b or c)是不一样的,后者等同于a and x in (b , c)

你把代码贴出来看看


武都区18741771446: 在oracle数据库中查询语句怎么写 -
频背百咳: 查询语句差不多的 select * from 表名--最基础的查询与SQL Server一样(ORACLE) SELECT a.*, b.* from a(+) = b就是一个右连接,等同于select a.*, b.* from a right join b (ORACLE与SQL Server) (ORACLE) SELECT a.*, b.* from a = b(+)就是一个左连接,等同于select a.*, b.* from a left join b (Oracle 与SQL Server) 记得加条件

武都区18741771446: 在oracle 中,查询语句用 in 和 or 查询的结果条数不一样.or 的大于 in 的. 请问这是什么原因? -
频背百咳: 先试试不要and a_devtestdt is null 这句、查看两段代码结果.再试试下面 select dept from A where (status='[D2]方案设计阶段' or status='[D2]方案审核中' or status ='[D2]开发中' or status='[D2]开发完成' or status='[D2]单元测试进行中') and a_...

武都区18741771446: Oracle中in和notin的巨大区别是什么?
频背百咳: 在很多软件系统中,系统的性能很大程度上由数据库的性能决定.以前也曾经做过很多次关于性能方面的各种测试,特别是关于oracle的,我想到也应该记录下来一部分,...

武都区18741771446: oracle中in不能超过1000怎么处理 -
频背百咳: 方法1:使用or连接多个in 方法2:在in内部使用子查询结果集合

武都区18741771446: oracle在做查询的时候,使用 where 条件过滤 是 or 的效率高 还是 in 的效率高? -
频背百咳: 这两个效率都不高.一般in (select)这样的语句可以用exists代替,效率要高很多.如果比较or和in,要看你语句的具体情况了.

武都区18741771446: oracle 查询函数怎么返回查询结果 -
频背百咳: 返回cursor的话,那么必须要cursor的手段来处理,不能作为查询语句的目的表.如果需要在函数返回一个可以供查询语句使用的结果集,那么该函数的返回类型应该定义为一个索引表类型(一个table类型),然后在查询语句中使用table函数将...

武都区18741771446: oracle根据索引查询出两天数据(在同一个数据块中),I/O几次? -
频背百咳: 你两条记录在一个数据块中,当然是I/O一次就够了,你读到第一条数据的所在的数据块,也就同时将第二条数据读到了内存里了,顶多是逻辑读次 full index fast scan 和full index scan都可以在查询语句里添加提示,使用多块读来读索引

武都区18741771446: oracle统计查询 sql语句应该怎么写 -
频背百咳: oracle查询语句:select 字段名 from 表名 (where 判断条件);oracle的统计函数(count) select count(字段名),字段1,字段2 from 表名 (where 判断条件) group by 字段1,字段2;

武都区18741771446: ORACLE IN 查询
频背百咳: 请确认参数传过来的字符串是否正确,及table中是否存在相应参数值的行.

武都区18741771446: c++中怎么写oracle查询语句... -
频背百咳: 我在vc6.0下使用otlv4.h头文件连接到oracle数据库的,现在要根据输入的变...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网