这种SQL语句怎么写?把不同记录中的内容显示在同一字段
我现在有这种表格:
序号 学校 考场 人数
1 浙江 1 10
2 浙江 2 20
3 江苏 1 10
4 山东 1 10
希望出现如下效果 就是把各个考场的人数放在人数字段已逗号分隔,谢谢!
学校 人数
浙江 10,20
江苏 10
山东 10
------解决方案----------------------合併
Create Table TEST
(序号 Int,
学校 Nvarchar(10),
考场 Int,
人数 Int)
Insert TEST Select 1, N '浙江 ', 1, 10
Union All Select 2, N '浙江 ', 2, 20
Union All Select 3, N '江苏 ', 1, 10
Union All Select 4, N '山东 ', 1, 10
GO
Create Function F_TEST(@School Nvarchar(10))
Returns Varchar(8000)
As
Begin
Declare @S Varchar(8000)
Select @S = ' '
Select @S = @S + ', ' + Rtrim(人数) From TEST Where 学校 = @School
Select @S = Stuff(@S , 1, 1 , ' ')
Return @S
End
GO
Select
学校,
dbo.F_TEST(学校) As 人数
From
TEST
Group By 学校
Order By Min(序号)
GO
Drop Table TEST
Drop Function F_TEST
--Result
/*
学校 人数
浙江 10,20
江苏 10
山东 10
*/