首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么比较两个SQL查询语句查询出来的结果集,并把有差异的记录列出来。这个SQL语句怎么写

2012-01-11 
如何比较两个SQL查询语句查询出来的结果集,并把有差异的记录列出来。这个SQL语句如何写如何比较两个SQL查询

如何比较两个SQL查询语句查询出来的结果集,并把有差异的记录列出来。这个SQL语句如何写
如何比较两个SQL查询语句查询出来的结果集,并把有差异的记录列出来。这个SQL语句如何写

[解决办法]
--用checksum()函数

--假设两个表结构完全相同

--所有A表中有,而B表中没有的数据
select *
from A
where checksum(*) not in (select checksum(*) from B)


--所有B表中有,而A表中没有的数据
select *
from B
where checksum(*) not in (select checksum(*) from A)
[解决办法]
checksum()函数不能用在
text、ntext、image、cursor 以及sql_variant数据类型的列上

[解决办法]
用binary_checksum替换checksum
指定对表中的所有列进行计算。BINARY_CHECKSUM 在计算中忽略具有不可比数据类型的列。不可比数据类型是 text、ntext、image、cursor 以及基本类型为前 4 个数据类型之一的 sql_variant。
checksum:
指定在表的所有列上进行计算。如果有任一列是非可比数据类型,则 CHECKSUM 返回错误。不可比数据类型是 text、ntext、image、cursor 以及基本类型为前 4 个数据类型之一的 sql_variant。

热点排行