转自:https://www.cnblogs.com/sunxuchu/p/5433882.html

概述

项目中经常会对两张数据库表的数据进行比较,选出相同的数据或者不同的数据。在SQL SERVER 2000中只能用Exists来判断,到了SQL SERVER 2005以后可以采用EXCEPT和INTERSECT运算符比较两张表的数据。

EXCEPT运算符返回由EXCEPT运算符左侧的查询返回、而又不包含在右侧查询所返回的值中的所有非重复值。

INTERSECT返回由INTERSECT运算符左侧和右侧的查询都返回的所有非重复值。

例如有表A和B,其建表和数据脚本如下:

if object_id('[a]') is not null drop table [a]
go
create table [a]([tel_no] bigint,[cost] int)
insert [a]
select 13800000000,38 union all
select 13823400000,56 union all
select 13800056400,88 union all
select 13800230000,28 union all
select 13802300000,18 union all
select 13822220000,68 union all
select 13844400000,98 union all
select 13833330000,35 union all
select 13822220000,31 union all
select 13811110000,32
--> 测试数据:[b]
if object_id('[b]') is not null drop table [b]
go
create table [b]([tel_no] bigint)
insert [b]
select 13800000000 union all
select 13823400000 union all
select 13800051230 union all
select 13800230123

现在要查出两张表相同的数据和两张表不同的数据,如果在SQL SERVER 2005以上版本:

--相同数据
select tel_no
from a
intersect
select tel_no
from b--不同数据
select tel_no
from b
except
select tel_no
from a

如果是SQL SERVER 2000

SELECT * FROM b WHERE EXISTS(SELECT 1 FROM a WHERE tel_no=b.tel_no)SELECT * FROM b WHERE NOT EXISTS(SELECT 1 FROM a WHERE tel_no=b.tel_no)

SQLServer两张表筛选相同数据和不同数据相关推荐

  1. 两张表筛选相同数据和不同数据

    项目中经常会对两张数据库表的数据进行比较,选出相同的数据或者不同的数据.在SQL SERVER 2000中只能用Exists来判断,到了SQL SERVER 2005以后可以采用EXCEPT和INTE ...

  2. SQL两张表筛选相同数据和不同数据

    原文链接:http://www.cnblogs.com/onesmail/p/6148979.html 方法一: select distinct A.ID from A where A.ID not ...

  3. EXCEL表从两张表中比对相同的数据后追加公式

    =IF(ISNA(VLOOKUP(B13,'sheet2'!B:C,2,FALSE)),"",VLOOKUP(B13,'sheet2'!B:C,2,FALSE))

  4. MySQL比较两张表数据相同、不同结果记录

    两张表:水果设备表sb_fruit.系统设备表xt_fruit,比较两张表中相同.不同的数据结果. 自己开始尝试写的方法: (1)设备与系统共有数据: select sb.id,sb.name_idn ...

  5. 对比两张表的数据并筛选出数据不同的

    描述: 表A和表B的主键A1和B1是相同的,现在需要A2和B2比较,A3和B3比较,将A2不等于B2和A3不等于B3的数据从表A中筛选出来.这样的SQL语句怎么写? SQL语句对比两张表的数据并筛选出 ...

  6. SqlServer+mysql查询两张表的相同和不同数据

    sqlserver 在SQL SERVER 2000中只能用Exists来判断,到了SQL SERVER 2005以后可以采用EXCEPT和INTERSECT运算符比较两张表的数据. INTERSEC ...

  7. sqlserver如何把两张表的数据合并为一张表

    今天在公司做项目的时候遇到一个情况,有两张临时表A(inco varchar(50)).表B(qty varchar(50)) 需要将这个两个表的数据插入到一张临时表中C(inco varchar(5 ...

  8. SQLSERVER中如何快速比较两张表的不一样

    SQLSERVER中如何快速比较两张表的不一样 不知不觉要写2014年的最后一篇博文了~ 一般来说,如何检测两张表的内容是否一致,体现在复制的时候发布端和订阅端的两端的数据上面 我这里罗列了一些如何从 ...

  9. mysql比对两张表数据

    如何对两个数据库中的表进行比较 server 和mysql可以这样: insert A表(要插入的字段列表) select 要插入的字段列表 库2.B表 --注意字段的对应.... oracle ex ...

最新文章

  1. 智能指针和内存管理小结
  2. HTML页面引入另一个HTML页面,比如各个页面引入通用的网站头部、尾部、导航栏
  3. Cortex-M3 任务切换函数实例
  4. ibatise 没有大于等于吗_农村房屋没有证等于违法建筑吗?下面三个时间点记住,小心被忽悠...
  5. Python之——遇到的小知识点总结
  6. word List 47
  7. android graphic(15)—fence
  8. ff7重制版青魔法_狂父重制版发布+妖精的尾巴首次打折¥244+最终幻想4解锁国区新增中文...
  9. python中文视频教程-中谷教育python中文视频教程(python视频教程) 完整版
  10. [论文翻译]NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE
  11. RabbitMQ---9、消息确认机制(事务+Confirm)
  12. 【原创】Proton在Android上的编译
  13. Invisible Perturbations: Physical Adversarial Examples Exploiting the Rolling Shutter Effect 论文解读
  14. 开源美颜滤镜SDK代码解析
  15. 写学位论文Word操作技巧:奇偶页眉不同,页码连续
  16. 学计算机的怎么防辐射,电脑机箱如何防辐射----给大家科普一下
  17. CentOS7安装Teamviewer
  18. Xiph基金会成员:Timothy B. Terriberry
  19. 获取电信光猫超级密码 获取宽带账号密码 获取公网ip
  20. 全局安装vue-cli以及初始化

热门文章

  1. 获取基站LAC CID
  2. java中数组的内存模型_Java如何在内存有限的情况下实现一个超大数组?jvm性能调优+内存模型+虚拟机原理能解决什么样问题...
  3. 如何自己开发一个Android APP(4)——JAVA
  4. Math Problem
  5. chrome检查更新时出错:无法启动更新检查(错误代码为 3: 0x80040154)
  6. 如何跟面试官解释事件循环
  7. 预约转账、基金购买、定投;收款人管理
  8. 【cocos2d-x】如何使用Cocos2D-x制作一款简单的iphoneAndroid游戏①
  9. 有关LOGO设计软件
  10. 女人,你是爱情呼叫转移中的哪一个?