首页 新闻 搜索 专区 学院

问个sqlserver的数据对比问题

0
悬赏园豆:50 [已解决问题] 解决于 2013-06-18 17:13

例如有这样一个表,假设里面有两条数据像这样

id   name    age    something

1     aa        12   abx

2     bb        12         abc

我想要对比这两条数据,用第二条和第一条比,把两条数据不同的列查出来得到这样一个结果

id   name    something

2     bb           abc

 

注:真实的表中是有很多列的.

 

在线等答案.请有解决方法的大神们指点下,先谢谢了.

Gryzor的主页 Gryzor | 初学一级 | 园豆:157
提问于:2013-06-18 09:32
< >
分享
最佳答案
1

FYI

http://www.kodyaz.com/articles/sql-string-manipulation-to-find-difference.aspx

收获园豆:50
Yu | 专家六级 |园豆:12950 | 2013-06-18 13:22
其他回答(3)
0

这个问题很有意思,能跟说说这样做的用处吗,或者是什么样的需求,这个问题在google上,不大好描述。。。

二十三号同学 | 园豆:963 (小虾三级) | 2013-06-18 10:10

用处就是需求中用户想知道发起合同变更后他更改了哪些字段

支持(0) 反对(0) Gryzor | 园豆:157 (初学一级) | 2013-06-18 10:15

@Gryzor: 用前台写最直接,把数据读出来进行遍历,最多就是写个专用的函数,用SQL 语句写的话,得好好查查,挺实用的需求。。。

支持(0) 反对(0) 二十三号同学 | 园豆:963 (小虾三级) | 2013-06-18 10:27
1

这种不推荐在数据库搞 吧,C#代码要好写点,数据库的话,先行转列,然后匹配完之后,再转回来。

幻天芒 | 园豆:36662 (高人七级) | 2013-06-18 13:48
1

这个很容易啊,你把几列合并成一列,然后再对比就好了。
select b.id,b.name,b.some1,b.some2,b.some3 from table1 A,table1 B
where rtrim(a.some1)+rtrim(a.some2)+rtrim(a.some3) = rtrim(b.some1)+rtrim(b.some2)+rtrim(b.some3)

kylin.chen | 园豆:983 (小虾三级) | 2013-06-18 16:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册