我希望在单个表中合并记录

时间:2014-02-07 14:15:53

标签: tsql sql-server-2005

我有一个表,其中有一些重复的记录都在一列中。

e.g。

Field-A Field-B Field-C

abc abc Fred

abc abc Harry

def cba Bert

def wxy David

def wxy Peter

def wxy Larry

我希望在T-SQL(SQL Server 2005存储过程)中压缩此表,以便在两个或多个行的列Field-A和Field-B相同的情况下,结果表将有一行与Field- C是其他人的合并。

因此,对于上面的示例,结果表将是..

Field-A Field-B Field-C

abc abc弗雷德,哈利

def cba Bert

def pxy David,Peter,Larry

有什么方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:1)

SELECT DISTINCT 
Field-A, 
Field-B, 
(SELECT Field-C + ',' from yourtable y WHERE y.Field-A=x.Field-A and y.Field-B=x.Field-B FOR XML PATH(''))
FROM yourtable x