oracle 代替in的语句,Oracle中exists替代in语句

大家都知道exists的速度要比in的速度快,也知道exists函数返回一个布尔值,也就是说exists函数里最后要是 a.id =b.id类似这种方式结束。

例如:

SELECT *

FROM TBL_REBATE_DAY_COUNT

WHERE ID IN (1, 2, 3, 4, 5);

(假设TBL_ALGO_RECORD 表中有ID=1,2,3,4,5)常规的方式转换成exists为

SELECT *

FROM TBL_REBATE_DAY_COUNT a

WHERE exists(SELECT *

FROM TBL_ALGO_RECORD b WHERE a.ID = b.ID);

上面是一张表的情况下可以这样写(为了演示这里我用了*,实际生产中不推荐大家写*号),但有的时候,这个exists中需要的是一个固定的值,而不是一张表又要怎么写呢?

这里,我们可以例用UNION关键字

SQL UNION 操作符

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

最后转换成exists的语句为:

SELECT *

FROM TBL_REBATE_DAY_COUNT t

WHERE exists(SELECT *

FROM (SELECT 1 AS id FROM dual

UNION SELECT 2 FROM dual

UNION SELECT 3 FROM dual

UNION SELECT 4 FROM dual

UNION SELECT 5 FROM dual

) tmp

WHERE tmp.id = t.id)

对于Oracle中分页排序查询语句执行效率的比较分析

转自:http://bbs.csdn.net/topics/370033478 对于Oracle中分页排序查询语句执行效率的比较分析 作者:lzgame 在工作中我们经常遇到需要在Oracle中进行分 ...

Oracle中,利用sql语句中的函数实现保留两位小数和四舍五入保留两位小数

Oracle中,利用sql语句中的函数实现保留两位小数和四舍五入保留两位小数: select trunc(1.23856789,2) from dual round(m,n) 可以四舍五入 trunc ...

Oracle中exists与in的区别

有两个简单例子,以说明 "exists"和"in"的效率问题 1) select * from T1 where exists(select 1 from T2 ...

oracle中exists和in的比较

exists 是Oracle sql中的一个函数.表示是否存在符合某种条件的记录.如 select * from A,B where A.id=B.id and exists (SELECT * FR ...

oracle中exists 和 in 的区别

1)用IN select * from A where id in(select id from B); 以上查询使用了in语句,in()只执行一次,它查出B表中的所有id字段并缓存起来.注意,是缓存 ...

Oracle中的一些查询语句及其执行顺序

查询条件: 1)LIKE:模糊查询,需要借助两个通配符,%:表示0到多个字符:_:标识单个字符. 2)IN(list):用来取出符合列表范围中的数据. 3)NOT IN(list): 取出不符合此列表 ...

Oracle中的一连接语句

首先构建场景 相应表中数据如下: SELECT * FROM EMPLOYEE: SELECT * FROM DEPTINFO; 连接方式: 1. , SELECT E.EMPNAME, D.DEPN ...

oracle 用EXISTS替代IN

在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下, 使用EXISTS(或NOT EXISTS)通常将提高查询的效率. 低效: SELECT * FROM EMP ( ...

常用oracle中系统表查询语句

sqlplus / as sysdbaSQL>select status from v$instance;1.查看最大连接数show parameter processes;2.查询oracle ...

随机推荐

Vue ES6 Jade Scss Webpack Gulp

一直以来非常庆幸曾经有翻过:这使我崎岖编程之路少了很多不必要的坎坷.它在软件工艺的话题中有写到一篇:"首先是为人写程序,其次才是机器(Write Programs ...

寒冬之下,浩瀚智能开单收银打印扫描POS为何能在批发零售门店商场 车销行业 风靡!:进销存+打印扫描POS机

是一款适用于商超.餐饮.服装鞋帽.家电专营等等具有零售行业特点的企业,供企业管理人员用于管理.监控本品牌的市场占有率.门店覆盖区域.网点分布合理性等经济地理信息的工具平台. 1,功能一:业务抄单文章来 ...

Log4j2常见使用示例及Syslog/Syslog-ng

准备工作 打开http://logging.apache.org/log4j/,点击左侧Download,我下载的是Apache Log4j 2 binary (zip),目前是2.0.2版本.解压后 ...

Jquery入门(初学者易懂)

一.定义 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计的宗旨是"w ...

史上最全TensorFlow学习资源汇总

来源 | 悦动智能(公众号ID:aibbtcom) 本篇文章将为大家总结TensorFlow纯干货学习资源,非常适合新手学习,建议大家收藏. ▌一 .TensorFlow教程资源 1)适合初学者的Te ...

●HDU 3507 Print Article

题链: http://acm.hdu.edu.cn/showproblem.php?pid=3507 题解: 斜率优化DP 一个入门题,就不给题解了,网上的好讲解很多的.   这里就只提一个小问题吧( ...

281. Zigzag Iterator z字型遍历

[抄题]: Given two 1d vectors, implement an iterator to return their elements alternately. Example: Inp ...

[Stats385] Lecture 05: Avoid the curse of dimensionality

Lecturer 咖中咖 Tomaso A. Poggio Lecture slice Lecture video 三个基本问题: Approximation Theory: When and why ...

Raft 一致性协议算法 《In search of an Understandable Consensus Algorithm (Extended Version)》

  Raft是一种用于管理日志复制的一致性算 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值