博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3.07 检测两个表中是否有相同的数据
阅读量:5995 次
发布时间:2019-06-20

本文共 1485 字,大约阅读时间需要 4 分钟。

问题:要知道两个表或视图中是否有相同的数据(基数和值)。考虑这个视图:

create view V
as 
    select * from emp where deptno !=10
        union all
    select * from emp where ename = 'WARD'   
现要检测这个视图与表emp中的数据是否完全相同。员工“WARD”行重复,说明解决方案不仅要显示不同行,还要显示重复行。
解决方案:
1.首先,查找出表emp中存在而试图v中没有的行
2.然后合并(union all)在视图V中存在,而在表emp中没有的行。
select * from 
    (
        select e.empno,e.ename,e.job,e.mgr,e.hiredate,
            e.sal,e.comm,e.deptno,count(*)  as cnt
        from emp e
        group by empno,ename,job,mgr,hiredate,sal,comm,deptno
    ) e
where not exists
    (
    select null from
        (
            select v.empno,v.ename,v.job,v.mgr,v.hiredate,v.sal,v.comm,v.deptno
                count (*) as cnt
            from v
            group by empno,ename,job,mgr,hiredate,sal,comm,deptno
        )v
        where v.empno = e.empno
            and v.ename = e.ename
            and v.job = e.job
            and v.mgr = e.mgr
            and v.hiredate = e.hiredate
            and v.sal = e.sal
            and v.deptno = e.deptno
            and v.cnt = e.cnt
            and coalesce(v.comm.0) = coalesce(e.comm,0)
    )
    union all
    select * from 
    (
        select e.empno ,e.ename,e.ename,e.job,e.mgr,e.hiredate,e.sal ,e.comm,e.deptno,count(*) as cnt
        from v 
        group by empno,ename,job,mgr,hiredate,sal,comm,deptno
    )v
    where not exists (
        select null from (
            select e.empno,e.ename,e.job,e.mgr,e.hiredate,e.sal,e.comm,e.deptno,count(*) as cnt
            from emp e
            group by empno,ename,job,mgr,hiredate,sal,comm,deptno
            )e
        where v.empno = e.empno
            and v.ename = e.ename
            and v.job = e.job
            and v.mgr = e.mgr
            and v.hiredate = e.hiredate
            and v.sal = e.sal
            and v.deptno = e.deptno
            and v.cnt = e.cnt
            and coalesce(v.comm.0) = coalesce(e.comm,0)
    );

转载于:https://www.cnblogs.com/liang545621/p/7518471.html

你可能感兴趣的文章
Dell:优化IT从定制化开始
查看>>
云计算一体机有妙用
查看>>
大数据产品不仅仅是IT工具
查看>>
在Windows Server 2008系统环境下无损调整分区
查看>>
全文目录
查看>>
【星辰傀儡线·命运环·卷二 尘埃】 6 封印
查看>>
GDI+ 通过笔刷创建钢笔并绘制图案
查看>>
《Windows核心编程》学习笔记(5)– 创建进程,结束进程,创建独立的子进程
查看>>
photoshop CS2 笔记
查看>>
每周优秀代码赏析系列【一】----LINQ In Javascript
查看>>
15 个最新的 CSS3 教程
查看>>
Mac OS 10.6(Snow Leopard)编译Android源代码
查看>>
最小生成树练习。。。
查看>>
负载均衡原理与实践详解 第六篇 健康检查机制详解(上)
查看>>
MapControl和PageLayoutControl同步(2)
查看>>
taglist
查看>>
UITabBarController 的使用
查看>>
卡特兰数
查看>>
epoll实现机制分析
查看>>
windows 2008 r2 安装TabsStudio
查看>>