dav*_*814 1 sql sql-server join report
对于我正在研究的报告,我需要根据特定列中的行共享在单独列中的数据来合并数据。所有数据均来自同一表:
ID | Name |
10000 Jane Doe
10000 John Smith
50000 Jack Bauer
50000 Jon Snow
90000 Jack Bauer
Run Code Online (Sandbox Code Playgroud)
当它们共享一个公共ID值时,我需要以某种方式将“名称”行组合在一起:
ID | Name |
10000 Jane Doe, John Smith
50000 Jack Bauer, Jon Snow
90000 Jack Bauer
Run Code Online (Sandbox Code Playgroud)
该ID不是primary key该表的ID ,但它是我需要的报告上的唯一值。
我大部分时间都是自学成才,并且缺乏SQL词汇量。我不太想如何表达代码以实现此目的。逻辑方面的任何帮助将不胜感激!
戴夫
测试数据
DECLARE @TABLE TABLE (ID INT, Name VARCHAR(50))
INSERT INTO @TABLE VALUES
(10000,'Jane Doe'),
(10000,'John Smith'),
(50000,'Jack Bauer'),
(50000,'Jon Snow'),
(90000,'Jack Bauer')
Run Code Online (Sandbox Code Playgroud)
询问
SELECT t.ID
,STUFF((SELECT ', ' + Name
FROM @Table
WHERE ID = t.ID
FOR XML PATH(''),TYPE)
.value('.','NVARCHAR(MAX)'),1,2,'') AS Names
FROM @TABLE t
GROUP BY t.ID
Run Code Online (Sandbox Code Playgroud)
结果集
????????????????????????????????
? ID ? Names ?
????????????????????????????????
? 10000 ? Jane Doe, John Smith ?
? 50000 ? Jack Bauer, Jon Snow ?
? 90000 ? Jack Bauer ?
????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4346 次 |
| 最近记录: |