`

Oracle: minus | in | exists

阅读更多
解释及例子:
MINUS Query:
http://www.techonthenet.com/sql/minus.php

IN Function:
http://www.techonthenet.com/sql/in.php

EXISTS Condition:
http://www.techonthenet.com/sql/exists.php


实例代码:
引用
SQL> select distinct deptno from dept

    DEPTNO
----------
        10
        20
        30
        40

4 rows selected.
SQL> select distinct deptno from emp

    DEPTNO
----------
        30
        20
        10

3 rows selected.
SQL> select distinct  deptno from dept  
where deptno in  
(select distinct deptno from emp)

    DEPTNO
----------
        30
        20
        10

3 rows selected.
SQL> select distinct deptno from dept  
where exists  
(select distinct deptno from emp where dept.deptno = emp.deptno)

    DEPTNO
----------
        30
        20
        10

3 rows selected.
SQL> select distinct deptno from dept  
minus  
select distinct deptno from emp

    DEPTNO
----------
        40

1 row selected.
SQL> select distinct  deptno from dept
where deptno not in  
(select distinct deptno from emp)

    DEPTNO
----------
        40

1 row selected.
SQL> select distinct deptno from dept  
where not exists  
(select distinct deptno from emp where dept.deptno = emp.deptno)

    DEPTNO
----------
        40

1 row selected.
分享到:
评论

相关推荐

    ORACLE和SQL Server的语法区别

    - 使用`EXISTS` 或 `NOT EXISTS` 替代`INTERSECT` 和 `MINUS` 集合运算符。 **2. INSERT语句** - **Oracle:** Oracle的INSERT语句允许插入单行或多行数据,也支持从一个表向另一个表插入数据。 ```sql INSERT ...

    Oracle和SQL_Server的语法区别

    - Oracle 支持 `INTERSECT` 和 `MINUS` 集合运算符,而 SQL Server 用 `EXISTS` 和 `NOT EXISTS` 子句来实现相同的效果。 对于示例中的 `INTERSECT` 和 `MINUS` 运算符,可以使用 `EXISTS` 或 `NOT EXISTS` 来达到...

    oracle和SQL的语法区别

    此外,Oracle 的 `INTERSECT` 和 `MINUS` 集合运算符在 SQL Server 中可以用 `EXISTS` 和 `NOT EXISTS` 子句来模拟。 总的来说,Oracle 到 SQL Server 的迁移不仅仅是简单的语法转换,还需要理解两者在处理逻辑、...

    Sql Server与Oracle的区别

    - **SELECT语句**:尽管基本语法相似,但Oracle支持特定的优化提示和集合运算符如START WITH和CONNECT BY,以及INTERSECT和MINUS,这些在Sql Server中需要通过其他方式实现,比如使用EXISTS和NOT EXISTS子句。...

    Oracle Database 11g SQL Fundamentals 英文原版

    3. 子查询:理解嵌套查询的概念,掌握IN、NOT IN、EXISTS、NOT EXISTS等子查询用法。 4. 分区和索引:了解Oracle的分区技术,如何提高查询性能,以及索引的创建、管理和使用。 5. 视图:创建和使用视图以简化复杂...

    Oracle教程.docx

    * EXISTS 和 NOT EXISTS:检查子查询返回的行是否存在 * ANY、SOME 和 ALL:将值与列表或子查询进行比较 7. 设置操作符 * UNION:合并两个或多个独立查询的结果 * INTERSECT:实现两个独立查询的结果的交集 * ...

    oracle部分面试题oracle部分面试题

    * 使用 NOT IN 语句来实现查询 * 使用 MINUS 语句来实现查询 * 使用 ALL 语句来实现查询 * 使用 LEFT OUTER JOIN 语句来实现查询 * 使用 NOT EXISTS 语句来实现查询 * 使用 INTERSECT 语句来实现查询 从这些解决...

    oracle sql调优原则

    - **IN/NOT IN操作符优化**:在业务密集的SQL中尽量避免使用`IN`和`NOT IN`操作符,可以使用`EXISTS`或`NOT EXISTS`来代替,以提高性能。同时,如果使用`IN`操作符,应将出现频率最高的值放在列表的前面。 - **IS ...

    Oracle性能问题总结

    Oracle 的 From 子句表的顺序,Where 子句表达式的顺序,避免使用 ‘*’,使用 Truncate 代替 Delete,使用索引尽量减少对表的查询,避免使用右匹配或者中间匹配的模糊查询,并注意使用 exists、NOT EXISTS、NOT IN ...

    Oracle常用关键词和函数

    IN子句用于检查某列的值是否在另一个查询的结果集中,而EXISTS则检查是否存在匹配的子查询结果。一般来说,当T1的数据量远小于T2时,EXISTS的效率更高,反之,当T1的数据量远大于T2时,IN的效率更优。 MINUS关键字...

    oracle性能问题总结

    - **使用Exists替代In**:Exists更高效于In,尤其在有子查询的情况下。 - **避免使用Not In**:Not Exists通常优于Not In。 - **避免使用DISTINCT**:在一对多查询时,应避免在SELECT中使用DISTINCT,可以考虑...

    Oracle基础知识

    ### Oracle基础知识概述 本文旨在为初学者提供Oracle数据库的基础知识概览,重点涵盖子查询、集合操作以及常用函数等核心概念和技术。通过本篇的学习,读者可以更好地理解Oracle数据库的操作方式,并掌握一些实用...

    Oracle高级sql学习与练习

    Oracle高级SQL学习与练习涵盖了数据库编程中的一系列高级主题,旨在帮助数据库开发者和管理员提高解决复杂问题的能力。在Oracle数据库系统中,高级SQL技能是进行高效数据管理、查询优化和复杂数据处理的基础。 1. ...

    异种数据库函数和标准SQL语法比较Oracle与SqlServer.rar

    - Oracle和SQL Server都支持`JOIN`,但Oracle的`MINUS`和`INTERSECT`操作在SQL Server中可以用`NOT EXISTS`和`INNER JOIN`或`UNION ALL`替代。 通过了解这些差异,开发者可以在跨平台项目中更高效地编写SQL语句,...

    oracl数据库查询优化[定义].pdf

    6. **MINUS子句和NOT IN**:MINUS子句通常比NOT IN更快,但需注意,NOT IN和NOT EXISTS在处理NULL值时有所不同,NOT EXISTS在某些情况下可能更快,因为它可以使用索引。 7. **LIKE操作符的效率**:`LIKE`操作符,...

    超详细Oracle教程(带目录).pdf

    - **存在量词**:介绍EXISTS和NOT EXISTS量词在子查询中的应用。 #### 九、高级查询 - **窗口函数**:ROW_NUMBER、RANK、DENSE_RANK等功能详解。 - **集合运算**:UNION、INTERSECT、MINUS操作符的使用方法。 - **...

Global site tag (gtag.js) - Google Analytics