日期:2014-05-17  浏览次数:20677 次

SQL 2000中,如何将多条记录的值放入一条记录中?
SQL2000中,如何将多条记录的值放入一条记录中?
Table1
班级   姓名
1     张三
1     李四
2     小明
2     小强
2     小李
想要的结果
班级    姓名
1      张三,李四
2      小明,小强,小李
------最佳解决方案--------------------

CREATE TABLE Table1(班级 int , 姓名 VARCHAR(20))
INSERT INTO Table1 SELECT 1,'张三'
UNION SELECT  1     ,'李四'
UNION SELECT  2     ,'小明'
UNION SELECT  2     ,'小强'
UNION SELECT  2     ,'小李'
 
go
 
CREATE  function getStr(@class int)
returns varchar(100)
as
begin
declare @a varchar(1000)
select @a=isnull(@a+',','')+姓名 from Table1 where 班级=@class
return @a
END

go

SELECT 班级,dbo.getStr(班级) 姓名
from table1
GROUP BY 班级

--result
/*班级          姓名     
----------- ----------------
1           李四,张三
2           小李,小明,小强

(所影响的行数为 2 行)

*/