比较两表数据
来源:互联网 发布:mac live photo 编辑 编辑:程序博客网 时间:2024/05/16 12:47
CREATE OR REPLACE VIEW v ASSELECT * FROM emp WHERE deptno != 10UNION ALLSELECT * FROM emp WHERE ename = 'WARD';SQL> set linesize 200SQL> select * from v where v.ename='WARD'; EMPNO ENAME JOBMGR HIREDATE SAL COMM DEPTNO---------- ---------- ---------- ---------- -------------- ---------- ---------- ---------- 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30SQL> select * from emp where ename='WARD'; EMPNO ENAME JOBMGR HIREDATE SAL COMM DEPTNO---------- ---------- ---------- ---------- -------------- ---------- ---------- ---------- 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30用全关联的话:SQL> SELECT v.empno, v.ename, b.empno, b.ename FROM v FULL JOIN emp b ON (b.empno = v.empno) WHERE (v.empno IS NULL OR b.empno IS NULL); 2 3 4 EMPNO ENAME EMPNO ENAME---------- ---------- ---------- ---------- 7839 KING 7782 CLARK 7934 MILLER会丢失ENAME=WARD的数据,可以使用标量子查询:SQL> SELECT empno,ename,job,mgr,hiredate,sal,comm,deptno, /*这儿使用的语句就叫标量子查询,以主表返回每一行的值为条件进行查询*/ (SELECT COUNT(*) FROM v v2 WHERE v2.empno = v.empno) AS cnt FROM v 2 3 4 ; EMPNO ENAME JOBMGR HIREDATE SAL COMM DEPTNO CNT---------- ---------- ---------- ---------- -------------- ---------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 17-12月-80 800 20 1 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 1 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 2 7566 JONES MANAGER 7839 02-4月 -81 2975 20 1 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 1 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30 1 7788 SCOTT ANALYST 7566 09-12月-82 3000 20 1 7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30 1 7876 ADAMS CLERK 7788 12-1月 -83 1100 20 1 7900 JAMES CLERK 7698 03-12月-81 950 30 1 7902 FORD ANALYST 7566 03-12月-81 3000 20 1 EMPNO ENAME JOBMGR HIREDATE SAL COMM DEPTNO CNT---------- ---------- ---------- ---------- -------------- ---------- ---------- ---------- ---------- 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 2已选择12行。SQL> SELECT empno,ename,job,mgr,hiredate,sal,comm,deptno, (SELECT COUNT(*) FROM emp b WHERE b.empno = emp.empno) AS cnt FROM emp 2 3 ; EMPNO ENAME JOBMGR HIREDATE SAL COMM DEPTNO CNT---------- ---------- ---------- ---------- -------------- ---------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 17-12月-80 800 20 1 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 1 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 1 7566 JONES MANAGER 7839 02-4月 -81 2975 20 1 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 1 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30 1 7782 CLARK MANAGER 7839 09-6月 -81 2450 10 1 7788 SCOTT ANALYST 7566 09-12月-82 3000 20 1 7839 KING PRESIDENT 17-11月-81 5000 10 1 7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30 1 7876 ADAMS CLERK 7788 12-1月 -83 1100 20 1 EMPNO ENAME JOBMGR HIREDATE SAL COMM DEPTNO CNT---------- ---------- ---------- ---------- -------------- ---------- ---------- ---------- ---------- 7900 JAMES CLERK 7698 03-12月-81 950 30 1 7902 FORD ANALYST 7566 03-12月-81 3000 20 1 7934 MILLER CLERK 7782 23-1月 -82 1300 10 1已选择14行。SQL> SELECT v.empno, v.ename, v.cnt, emp.empno, emp.ename, emp.cnt FROM (SELECT empno,ename,job,mgr,hiredate,sal,comm,deptno, /*这儿使用的语句就叫标量子查询,以主表返回每一行的值为条件进行查询*/ (SELECT COUNT(*) FROM v v2 WHERE v2.empno = v.empno) AS cnt FROM v) v FULL JOIN (SELECT empno,ename,job,mgr,hiredate,sal,comm,deptno, (SELECT COUNT(*) FROM emp b WHERE b.empno = emp.empno) AS cnt FROM emp) emp ON (emp.empno = v.empno AND emp.cnt = v.cnt)WHERE (v.empno IS NULL OR emp.empno IS NULL); 2 3 4 5 6 7 8 9 10 EMPNO ENAME CNT EMPNO ENAME CNT---------- ---------- ---------- ---------- ---------- ---------- 7521 WARD 2 7521 WARD 2 7521 WARD1 7782 CLARK1 7839 KING1 7934 MILLER1已选择6行。
0 0
- 比较两表数据
- mysql 比较两表数据差异
- 多组数据两两比较相关性
- 比较相同结构的两表中的数据差异
- 数据访问两种模式的比较
- Excel 两列数据进行比较
- EXCEL 比较两列数据是否相同
- 两组字符串数据比较合并相同数据
- 两种比较特殊的交叉数据报表处理
- 比较两种方法实现数据统计效果
- Vector两种插入数据的方法比较
- excel比较两组或两列数据的相同项和不同项
- mysql 两表导入数据
- 比较两行数据
- 两时间比较
- 两数组比较
- ipad 两款比较
- 比较两数大小
- HDU-2032-直角杨辉三角
- spring自定义FactoryBean
- HDU-#2544 最短路(Dijkstra、Floyd、Bellman-Ford、SPFA)
- UI----UIslider 和UIcontrol的属性
- 计算机体系结构的铁律(iron law)
- 比较两表数据
- 关于异或加密算法的小游戏
- 黑马程序员-面向对象总结(1)
- Android假短信(发送短信到手机系统)
- 6 Maintaining Client State
- HDU-2043-判断安全密码
- hdu 1042 N!
- 3.1.2、ObjectARX应用程序中的事件顺序
- Java开发中的23种设计模式详解(转)