查找两个数据集之间的数据差异
来源:互联网 发布:vb讲excell导到数据库 编辑:程序博客网 时间:2024/06/16 18:49
Declare @vSQL varchar(max)
Declare @vCols varchar(max)
Create Table vTable1 (id int, StudentID int, Dept varchar(10),BookID int)
Create Table vTable2 (id int, StudentID int, Dept varchar(10),BookID int)
Insert into vTable1
Select 1,123,'CS',465 Union All
Select 2,123,'CS',345 Union All
Select 3,223,'TE',190
Insert into vTable2
Select 1,123,'CS',465 Union All
Select 2,223,'TE',345 Union All
Select 3,223,'TE',190
-- Get the column names from schema with case statements to get 0 or 1 as result
-- Now, this will depend upon the columns of your actual tables
-- Data approach
Select @vCols = Stuff((Select ',case when a.' + [name] + ' = b.' + [name] + ' then Cast(b.' + [name]+' as varchar(10)) else cast(b.' + [name] + ' as varchar(max)) + ''(old)'' + '' '' + Cast(a.' + [name] + ' as varchar(10)) + ''(new)'' end as ' +
[name] from sys.columns
where Object_id = Object_id('vTable1') for XML Path('')),1,1,'')
-- Concatenate the @vCols with main sql
Set @vSQL = ' Select a.id,' + @vCols + ' From vTable1 a
Inner Join vTable2 b on b.ID = a.ID '
Print @vSQL
Exec (@vSQL)
--Flag approach
Select @vCols = Stuff((Select ',case when a.' +
[name] + ' = b.'
+ [name] + ' then 1 else 0 end as ' +
[name] from sys.columns
where Object_id
= Object_id('vTable1') for XML Path('')),1,1,'')
Set @vSQL = ' Select a.id,' + @vCols + ' From vTable1 a
Inner Join vTable2 b on b.ID = a.ID '
Print @vSQL
Exec (@vSQL)
Drop table vTable1
Drop table vTable2
---the scripts written by Atif-ullah Sheikh
- 查找两个数据集之间的数据差异
- 数据库中查找两个日期之间的数据
- 比较两个同名表在数据上的差异。
- 比较两个同名表在数据上的差异(转载)
- 对比a,b两个表相同字段 数据的差异
- 查找两个表结构相同,内容之间的差异!(insert ,update,delete)
- 两个控制器之间的数据传递 (MVC)
- 求两个日期之间的数据
- MySQL两个数据库之间数据的拷贝
- 实现两个数据库之间的数据同步
- wireshark抓取两个ip之间的数据
- 两个Activity之间数据的传递
- Exchanger两个线程之间的数据交换
- 正则匹配两个字符之间的数据
- Oracle 取两个表中数据的交集并集差异集合
- Oracle 取两个表中数据的交集并集差异集合
- 数据分析、数据挖掘、数据统计、OLAP 之间的差异是什么?-- 孙文亮
- 数据分析、数据挖掘、数据统计、OLAP 之间的差异是什么?
- VS2010旗舰版Key
- Linux下zip加密压缩
- 自定义服务器控件(web)中的按钮回发后..
- 如何在vc中引用lib库文件
- Android 开发笔记
- 查找两个数据集之间的数据差异
- web c
- Linux网络栈剖析(从 socket 到设备驱动程序)
- iPhone 开发 之 ASIHTTPRequest (一)
- iPhone 开发 之 ASIHTTPRequest (二)
- Swing开发(一)
- 【勘误】C# 2005 & .Net 3.0高级编程 勘误(二)
- An alternative to VC++ and MFC
- XP下QT4命令行编译(转)