如何比较两张内容差不多的表?

ywduan 2003-10-09 10:16:09
为了保证输入的准确性,现在有两人往两种同样结构的表中输入同样的数据,假设每个人输入的主键字段都正确,最后应该如何审核两张表的其他字段是否相同?
...全文
61 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2003-10-09
  • 打赏
  • 举报
回复
如果不想手工写字段,可以用生成SQL语句的方法:

declare @sql varchar(8000)
set @sql='select Select * from A a inner join B b on a.key = b.key where '
select @sql=@sql+'a.['+name+']<>b.['+name+'] or '
from syscolumns where object_id('A')=id and name<>'key'

set @sql=left(@sql,len(@sql)-4)
exec(@sql)
zjcxc 元老 2003-10-09
  • 打赏
  • 举报
回复
逐个比较,

Select * from A a inner join B b on a.key = b.key
where a.F1 <> b.F1 or a.F2 <> b.F2 or a.F3 <> b.F3 ...其他字段逐个比较
ywduan 2003-10-09
  • 打赏
  • 举报
回复
非常感谢
都不错 我试试成功后结贴
txlicenhe 2003-10-09
  • 打赏
  • 举报
回复
Select * from A
join B on a.key = b.key
where a.F1 <> b.F1 or a.F2 <> b.F2 or a.F3 <> b.F3 ...
pengdali 2003-10-09
  • 打赏
  • 举报
回复
差:
c1-c2:

select * from t1 where not exists(select 1 from t2 where t1.c1=t2.c1 and t1.c2=t2.c2)

c2-c1:

select * from t2 where not exists(select 1 from t1 where t1.c1=t2.c1 and t1.c2=t2.c2)
ywduan 2003-10-09
  • 打赏
  • 举报
回复
SQL版的人真热心啊
谢谢

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧