ITPub博客

首页 > 数据库 > Oracle > 使用EXISTS替换DISTINCT

使用EXISTS替换DISTINCT

原创 Oracle 作者:luisedalian 时间:2014-01-14 08:08:19 0 删除 编辑
当查询中包含的表之间有一对多的关系时,避免在SELECT子句中使用DISTICT,可以使用EXISTS替换。

点击(此处)折叠或打开

  1. --查询emp表中目前所有员工都在哪些部门工作(包括部门编号和部门名称)
  2. --使用DISTINCT(低效)
  3. SELECT DISTINCT d.deptno, d.dname FROM dept d, emp e WHERE d.deptno = e.deptno;


点击(此处)折叠或打开

  1. --使用EXISTS(高效)
  2. select d.deptno, d.dname from dept d
  3. where exists (select 1 from emp e where e.deptno = d.deptno);


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1070238/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 共享SQL语句
请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    6040836