SQL合并列上的行

时间:2014-09-15 14:51:23

标签: sql sql-server sql-server-2008 concatenation

我需要帮助查询我试图运行。

基本上我有两列(试图保持简单),我需要合并和连接 这两列是使用以下查询从不同的表创建的:

select tmatter, tkinitb 
  FROM timecard, timekeep, matter
  where ttk = tkinit
  and mstatus = 'OP'
  group by tkinitb, tmatter
  order by tmatter ASC

tmatter  | tkinitb
1        |   A
1        |   B
2        |   C
2        |   D

我希望得到这样的结果:

tmatter  | tkinitb
1        | A, B
2        | C, D

我不确定如何合并同类单元格上的不同单元格。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

select [Column  1],
       stuff((select ',' + [Column 2] from yourtable x where x.[Column 1] = t.[Column 1] for xml path('')), 1, 1, '')
from   yourtable t
group by [Column  1]

答案 1 :(得分:0)

SELECT  [COLUMN 1]
,STUFF( (SELECT  ',' + [COLUMN 2]
              FROM test T1
              WHERE T1.[column 1] = T2.[column 1]
              FOR XML PATH ('')
               ), 1, 1, '') 
FROM test T2
GROUP BY [column 1]