【问题标题】:SQL Merge Rows on Column [duplicate]SQL合并列上的行[重复]
【发布时间】:2014-09-15 14:51:22
【问题描述】:

对于我正在尝试运行的查询,我需要一点帮助。

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

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

我不确定如何将不同的单元格合并到相似的单元格上。

任何帮助将不胜感激。

【问题讨论】:

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


【解决方案1】:
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]

【讨论】:

  • 我不知道为什么它不工作,但每列 2 都包含所有值,不确定与第 1 列匹配的值
  • 您能告诉我们您使用的查询吗?
【解决方案2】:
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]

【讨论】:

    猜你喜欢
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 2021-03-20
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 2015-09-05
    • 2014-09-08
    相关资源
    最近更新 更多