首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

这种SQL语句如何写?把不同记录中的内容显示在同一字段

2012-01-18 
这种SQL语句怎么写?把不同记录中的内容显示在同一字段我现在有这种表格:序号学校考场人数1浙江1102浙江220

这种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
*/

热点排行