当前位置:Gxlcms > 数据库问题 > Oracle学习之集合运算

Oracle学习之集合运算

时间:2021-07-01 10:21:17 帮助过:3人阅读

  •   2  where deptno=10  
  •   3  union  
  •   4  select * from emp  
  •   5  where deptno=20;  
  •   
  •      EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO  
  • ---------- ---------- --------- ---------- -------------- ---------- ---------- ----------  
  •       7369 SMITH      CLERK           7902 17-12月-80            880                    20  
  •       7566 JONES      MANAGER         7839 02-4月 -81           2975                    20  
  •       7782 CLARK      MANAGER         7839 09-6月 -81           2450                    10  
  •       7788 SCOTT      ANALYST         7566 19-4月 -87           3000                    20  
  •       7839 KING       PRESIDENT            17-11月-81           5000                    10  
  •       7876 ADAMS      CLERK           7788 23-5月 -87           1100                    20  
  •       7902 FORD       ANALYST         7566 03-12月-81           3000                    20  
  •       7934 MILLER     CLERK           7782 23-1月 -82           1300                    10  
  •   
  • 已选择8行。  
  •            使用UNION操作符统计scott用户下emp表中得各个部门的总工资,

           和各部门各职位的工资

     

    Sql代码  技术分享
    1. SQL> break on deptno skip 2;  
    2. SQL> select deptno,job,sum(sal) from emp group by deptno,job  
    3.   2  union  
    4.   3  select deptno,to_char(null),sum(sal) from emp group by deptno  
    5.   4  union  
    6.   5  select to_number(null),to_char(null),sum(sal) from emp;  
    7.   
    8.     DEPTNO JOB         SUM(SAL)  
    9. ---------- --------- ----------  
    10.         10 CLERK           1300  
    11.            MANAGER         2450  
    12.            PRESIDENT       5000  
    13.                            8750  
    14.   
    15.   
    16.         20 ANALYST         6000  
    17.            CLERK           1980  
    18.            MANAGER         2975  
    19.                           10955  
    20.   
    21.   
    22.         30 CLERK            950  
    23.            MANAGER         2850  
    24.            SALESMAN        5600  
    25.                            9400  
    26.   
    27.   
    28.                           29105  
    29.   
    30.   
    31.   
    32. 已选择13行。  

               使用UNION ALL操作符查询scott用户下dept表中的信息

     

    Sql代码  技术分享
    1. SQL> select * from dept  
    2.   2  union all  
    3.   3  select * from dept;  
    4.   
    5.     DEPTNO DNAME          LOC  
    6. ---------- -------------- -------------  
    7.         10 ACCOUNTING     NEW YORK  
    8.         20 RESEARCH       DALLAS  
    9.         30 SALES          CHICAGO  
    10.         40 OPERATIONS     BOSTON  
    11.         10 ACCOUNTING     NEW YORK  
    12.         20 RESEARCH       DALLAS  
    13.         30 SALES          CHICAGO  
    14.         40 OPERATIONS     BOSTON  
    15.   
    16. 已选择8行。  

                使用INTERSECT操作符查询scott用户下dept表和emp表中都存在的

            部门号

     

    Sql代码  技术分享
    1. SQL> select deptno from emp  
    2.   2  intersect  
    3.   3  select deptno from dept;  
    4.   
    5.     DEPTNO  
    6. ----------  
    7.         10  
    8.         20  
    9.         30  

     

                   使用MINUS操作符查询scott用户下dept表中存在而emp表中

                   不存在的部门号

    Sql代码  技术分享
    1. SQL> select deptno from dept  
    2.   2  minus  
    3.   3  select deptno from emp;  
    4.   
    5.     DEPTNO  
    6. ----------  
    7.         40  

                    使用MINUS操作符查询scott用户下emp表中的员工工资属于

              (1200-2000)这个档,而不属于(1400-3000)这个档的员工

     

    Sql代码  技术分享
    1. SQL> select empno,ename,job,sal  
    2.   2  from emp  
    3.   3  where sal between 1200 and 2000  
    4.   4  minus  
    5.   5  select empno,ename,job,sal  
    6.   6  from emp  
    7.   7  where sal between 1400 and 3000;  
    8.   
    9.      EMPNO ENAME      JOB              SAL  
    10. ---------- ---------- --------- ----------  
    11.       7521 WARD       SALESMAN        1250  
    12.       7654 MARTIN     SALESMAN        1250  
    13.       7934 MILLER     CLERK           1300  

     

    Oracle学习之集合运算

    标签:

    人气教程排行