日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle集合运算

發布時間:2024/9/27 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle集合运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SQL> --什么是集合運算?
SQL> --查詢10號部門和20號部門的員工
SQL> --第一種
SQL> select *
? 2? from emp
? 3? where deptno=10 or deptno=20;

???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7369 SMITH????? CLERK?????????? 7902 17-12月-80?????? 800??????????????????? 20??????????????????????????????????
????? 7566 JONES????? MANAGER???????? 7839 02-4月 -81????? 2975??????????????????? 20??????????????????????????????????
????? 7782 CLARK????? MANAGER???????? 7839 09-6月 -81????? 2450??????????????????? 10??????????????????????????????????
????? 7788 SCOTT????? ANALYST???????? 7566 13-7月 -87????? 3000??????????????????? 20??????????????????????????????????
????? 7839 KING?????? PRESIDENT??????????? 17-11月-81????? 5000??????????????????? 10??????????????????????????????????
????? 7876 ADAMS????? CLERK?????????? 7788 13-7月 -87????? 1100??????????????????? 20??????????????????????????????????
????? 7902 FORD?????? ANALYST???????? 7566 03-12月-81????? 3000??????????????????? 20??????????????????????????????????
????? 7934 MILLER???? CLERK?????????? 7782 23-1月 -82????? 1300??????????????????? 10??????????????????????????????????

已選擇8行。

SQL> --第二種
SQL> select *
? 2? from emp
? 3? where deptno in (10,20);

???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7369 SMITH????? CLERK?????????? 7902 17-12月-80?????? 800??????????????????? 20??????????????????????????????????
????? 7566 JONES????? MANAGER???????? 7839 02-4月 -81????? 2975??????????????????? 20??????????????????????????????????
????? 7782 CLARK????? MANAGER???????? 7839 09-6月 -81????? 2450??????????????????? 10??????????????????????????????????
????? 7788 SCOTT????? ANALYST???????? 7566 13-7月 -87????? 3000??????????????????? 20??????????????????????????????????
????? 7839 KING?????? PRESIDENT??????????? 17-11月-81????? 5000??????????????????? 10??????????????????????????????????
????? 7876 ADAMS????? CLERK?????????? 7788 13-7月 -87????? 1100??????????????????? 20??????????????????????????????????
????? 7902 FORD?????? ANALYST???????? 7566 03-12月-81????? 3000??????????????????? 20??????????????????????????????????
????? 7934 MILLER???? CLERK?????????? 7782 23-1月 -82????? 1300??????????????????? 10??????????????????????????????????

已選擇8行。

SQL> --第三種:集合運算
SQL> -- select * from emp where deptno=10;
SQL> -- select * from emp where deptno=20;
SQL> -- 集合的三種運算:并,交,差
SQL> select * from emp where deptno=10
? 2? union
? 3? select * from emp where deptno=20;

???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7369 SMITH????? CLERK?????????? 7902 17-12月-80?????? 800??????????????????? 20??????????????????????????????????
????? 7566 JONES????? MANAGER???????? 7839 02-4月 -81????? 2975??????????????????? 20??????????????????????????????????
????? 7782 CLARK????? MANAGER???????? 7839 09-6月 -81????? 2450??????????????????? 10??????????????????????????????????
????? 7788 SCOTT????? ANALYST???????? 7566 13-7月 -87????? 3000??????????????????? 20??????????????????????????????????
????? 7839 KING?????? PRESIDENT??????????? 17-11月-81????? 5000??????????????????? 10??????????????????????????????????
????? 7876 ADAMS????? CLERK?????????? 7788 13-7月 -87????? 1100??????????????????? 20??????????????????????????????????
????? 7902 FORD?????? ANALYST???????? 7566 03-12月-81????? 3000??????????????????? 20??????????????????????????????????
????? 7934 MILLER???? CLERK?????????? 7782 23-1月 -82????? 1300??????????????????? 10??????????????????????????????????

已選擇8行。

SQL> --關于并集,討論性能
SQL> --group by的增強
SQL> select deptno,job,sum(sal)
? 2? from emp
? 3? group by rollup(deptno,job);

??? DEPTNO JOB???????? SUM(SAL)????????????????????????????????????????????????????????????????????????????????????????
---------- --------- ----------????????????????????????????????????????????????????????????????????????????????????????
??????? 10 CLERK?????????? 1300????????????????????????????????????????????????????????????????????????????????????????
??????? 10 MANAGER???????? 2450????????????????????????????????????????????????????????????????????????????????????????
??????? 10 PRESIDENT?????? 5000????????????????????????????????????????????????????????????????????????????????????????
??????? 10???????????????? 8750????????????????????????????????????????????????????????????????????????????????????????
??????? 20 CLERK?????????? 1900????????????????????????????????????????????????????????????????????????????????????????
??????? 20 ANALYST???????? 6000????????????????????????????????????????????????????????????????????????????????????????
??????? 20 MANAGER???????? 2975????????????????????????????????????????????????????????????????????????????????????????
??????? 20??????????????? 10875????????????????????????????????????????????????????????????????????????????????????????
??????? 30 CLERK??????????? 950????????????????????????????????????????????????????????????????????????????????????????
??????? 30 MANAGER???????? 2850????????????????????????????????????????????????????????????????????????????????????????
??????? 30 SALESMAN??????? 5600????????????????????????????????????????????????????????????????????????????????????????

??? DEPTNO JOB???????? SUM(SAL)????????????????????????????????????????????????????????????????????????????????????????
---------- --------- ----------????????????????????????????????????????????????????????????????????????????????????????
??????? 30???????????????? 9400????????????????????????????????????????????????????????????????????????????????????????
????????????????????????? 29025????????????????????????????????????????????????????????????????????????????????????????

已選擇13行。

SQL> break on deptno skip 2
SQL> /

??? DEPTNO JOB???????? SUM(SAL)????????????????????????????????????????????????????????????????????????????????????????
---------- --------- ----------????????????????????????????????????????????????????????????????????????????????????????
??????? 10 CLERK?????????? 1300????????????????????????????????????????????????????????????????????????????????????????
?????????? MANAGER???????? 2450????????????????????????????????????????????????????????????????????????????????????????
?????????? PRESIDENT?????? 5000????????????????????????????????????????????????????????????????????????????????????????
?????????????????????????? 8750????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????? 20 CLERK?????????? 1900????????????????????????????????????????????????????????????????????????????????????????
?????????? ANALYST???????? 6000????????????????????????????????????????????????????????????????????????????????????????
?????????? MANAGER???????? 2975????????????????????????????????????????????????????????????????????????????????????????
????????????????????????? 10875????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

??? DEPTNO JOB???????? SUM(SAL)????????????????????????????????????????????????????????????????????????????????????????
---------- --------- ----------????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????? 30 CLERK??????????? 950????????????????????????????????????????????????????????????????????????????????????????
?????????? MANAGER???????? 2850????????????????????????????????????????????????????????????????????????????????????????
?????????? SALESMAN??????? 5600????????????????????????????????????????????????????????????????????????????????????????
?????????????????????????? 9400????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????????????????????????? 29025????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

已選擇13行。

SQL> host cls

SQL> select deptno,job,sum(sal) from emp group by deptno,job
? 2? union
? 3? select deptno,sum(sal) from emp group by deptno
? 4? union
? 5? select sum(sal) from emp;
select deptno,sum(sal) from emp group by deptno
*
第 3 行出現錯誤:
ORA-01789: 查詢塊具有不正確的結果列數


SQL> --使用集合操作的 注意事項:
SQL> --1.? 參與運算的集合必須列數相同
SQL> --2.? 運算后的結果的表頭為第一個集合的表頭
SQL> select deptno,job,sum(sal) from emp group by deptno,job
? 2? union
? 3? select deptno,to_char(null),sum(sal) from emp group by deptno
? 4? union
? 5? select to_number(null),to_char(null),sum(sal) from emp;

??? DEPTNO JOB???????? SUM(SAL)????????????????????????????????????????????????????????????????????????????????????????
---------- --------- ----------????????????????????????????????????????????????????????????????????????????????????????
??????? 10 CLERK?????????? 1300????????????????????????????????????????????????????????????????????????????????????????
?????????? MANAGER???????? 2450????????????????????????????????????????????????????????????????????????????????????????
?????????? PRESIDENT?????? 5000????????????????????????????????????????????????????????????????????????????????????????
?????????????????????????? 8750????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????? 20 ANALYST???????? 6000????????????????????????????????????????????????????????????????????????????????????????
?????????? CLERK?????????? 1900????????????????????????????????????????????????????????????????????????????????????????
?????????? MANAGER???????? 2975????????????????????????????????????????????????????????????????????????????????????????
????????????????????????? 10875????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

??? DEPTNO JOB???????? SUM(SAL)????????????????????????????????????????????????????????????????????????????????????????
---------- --------- ----------????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????? 30 CLERK??????????? 950????????????????????????????????????????????????????????????????????????????????????????
?????????? MANAGER???????? 2850????????????????????????????????????????????????????????????????????????????????????????
?????????? SALESMAN??????? 5600????????????????????????????????????????????????????????????????????????????????????????
?????????????????????????? 9400????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????????????????????????? 29025????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

已選擇13行。

SQL> --打開sql運行時間開關
SQL> set timing on
SQL> /

??? DEPTNO JOB???????? SUM(SAL)????????????????????????????????????????????????????????????????????????????????????????
---------- --------- ----------????????????????????????????????????????????????????????????????????????????????????????
??????? 10 CLERK?????????? 1300????????????????????????????????????????????????????????????????????????????????????????
?????????? MANAGER???????? 2450????????????????????????????????????????????????????????????????????????????????????????
?????????? PRESIDENT?????? 5000????????????????????????????????????????????????????????????????????????????????????????
?????????????????????????? 8750????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????? 20 ANALYST???????? 6000????????????????????????????????????????????????????????????????????????????????????????
?????????? CLERK?????????? 1900????????????????????????????????????????????????????????????????????????????????????????
?????????? MANAGER???????? 2975????????????????????????????????????????????????????????????????????????????????????????
????????????????????????? 10875????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

??? DEPTNO JOB???????? SUM(SAL)????????????????????????????????????????????????????????????????????????????????????????
---------- --------- ----------????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????? 30 CLERK??????????? 950????????????????????????????????????????????????????????????????????????????????????????
?????????? MANAGER???????? 2850????????????????????????????????????????????????????????????????????????????????????????
?????????? SALESMAN??????? 5600????????????????????????????????????????????????????????????????????????????????????????
?????????????????????????? 9400????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????????????????????????? 29025????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

已選擇13行。

已用時間:? 00: 00: 00.56
SQL> select deptno,job,sum(sal)
? 2? from emp
? 3? group by rollup(deptno,job);

??? DEPTNO JOB???????? SUM(SAL)????????????????????????????????????????????????????????????????????????????????????????
---------- --------- ----------????????????????????????????????????????????????????????????????????????????????????????
??????? 10 CLERK?????????? 1300????????????????????????????????????????????????????????????????????????????????????????
?????????? MANAGER???????? 2450????????????????????????????????????????????????????????????????????????????????????????
?????????? PRESIDENT?????? 5000????????????????????????????????????????????????????????????????????????????????????????
?????????????????????????? 8750????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????? 20 CLERK?????????? 1900????????????????????????????????????????????????????????????????????????????????????????
?????????? ANALYST???????? 6000????????????????????????????????????????????????????????????????????????????????????????
?????????? MANAGER???????? 2975????????????????????????????????????????????????????????????????????????????????????????
????????????????????????? 10875????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

??? DEPTNO JOB???????? SUM(SAL)????????????????????????????????????????????????????????????????????????????????????????
---------- --------- ----------????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????? 30 CLERK??????????? 950????????????????????????????????????????????????????????????????????????????????????????
?????????? MANAGER???????? 2850????????????????????????????????????????????????????????????????????????????????????????
?????????? SALESMAN??????? 5600????????????????????????????????????????????????????????????????????????????????????????
?????????????????????????? 9400????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????????????????????????? 29025????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

已選擇13行。

已用時間:? 00: 00: 00.50
SQL> set timing off
SQL> break on null
SQL> host cls

SQL> --交集:
SQL> -- 查詢工資屬于1000~2000這個區間和1500~2500這個區間
SQL> select * from emp where sal between 1000 and 2000
? 2? intersect
? 3? select * from emp where sal between 1500 and 2500;

???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7499 ALLEN????? SALESMAN??????? 7698 20-2月 -81????? 1600??????? 300???????? 30??????????????????????????????????
????? 7844 TURNER???? SALESMAN??????? 7698 08-9月 -81????? 1500????????? 0???????? 30??????????????????????????????????

SQL> --差集:
SQL> --查詢工資屬于1000~2000,但不屬于1500~2500
SQL> ed
已寫入 file afiedt.buf

? 1? select * from emp where sal between 1000 and 2000
? 2? minus
? 3* select * from emp where sal between 1500 and 2500
SQL> /

???? EMPNO ENAME????? JOB????????????? MGR HIREDATE???????? SAL?????? COMM???? DEPTNO??????????????????????????????????
---------- ---------- --------- ---------- -------------- ----- ---------- ----------??????????????????????????????????
????? 7521 WARD?????? SALESMAN??????? 7698 22-2月 -81????? 1250??????? 500???????? 30??????????????????????????????????
????? 7654 MARTIN???? SALESMAN??????? 7698 28-9月 -81????? 1250?????? 1400???????? 30??????????????????????????????????
????? 7876 ADAMS????? CLERK?????????? 7788 13-7月 -87????? 1100??????????????????? 20??????????????????????????????????
????? 7934 MILLER???? CLERK?????????? 7782 23-1月 -82????? 1300??????????????????? 10??????????????????????????????????

SQL> --1.列數相同
SQL> --2. 采用第一個集合的表頭
SQL> spool off

總結

以上是生活随笔為你收集整理的Oracle集合运算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。