yon*_*236 21 sql t-sql sql-server xquery sql-server-group-concat
假设我有这个表[表1]
Name Mark
------- ------
ABC 10
DEF 10
GHI 10
JKL 20
MNO 20
PQR 30
Run Code Online (Sandbox Code Playgroud)
我的SQL语句应该是什么来检索看起来像这样的记录:( group by [mark]).我已经完成了1和2列,但不知道如何完成第3列(使用相同的[mark]连接[name])
mark count names
---- ----- -----------
10 3 ABC,DEF,GHI
20 2 JKL,MNO
30 1 PQR
Run Code Online (Sandbox Code Playgroud)
我正在使用Microsoft SQL.请帮忙.谢谢
Kir*_*huk 35
如果是MS SQL 2005或更高版本.
declare @t table([name] varchar(max), mark int)
insert @t values ('ABC', 10), ('DEF', 10), ('GHI', 10),
('JKL', 20), ('MNO', 20), ('PQR', 30)
select t.mark, COUNT(*) [count]
,STUFF((
select ',' + [name]
from @t t1
where t1.mark = t.mark
for xml path(''), type
).value('.', 'varchar(max)'), 1, 1, '') [values]
from @t t
group by t.mark
Run Code Online (Sandbox Code Playgroud)
输出:
mark count values
----------- ----------- --------------
10 3 ABC,DEF,GHI
20 2 JKL,MNO
30 1 PQR
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36108 次 |
| 最近记录: |