日期:2014-05-17 浏览次数:20455 次
--drop table tb
create table tb(姓名 varchar(10),课程 varchar(10),分数 int)
insert into tb values('张三','语文',74)
insert into tb values('张三','数学',83)
insert into tb values('张三','物理',93)
insert into tb values('李四','语文',74)
insert into tb values('李四','数学',84)
insert into tb values('李四','物理',94)
go
select distinct
姓名,
replace((select ','+课程 from tb t where t.姓名 = tb.姓名 for xml path('')),',','') as 课程
from tb
/*
姓名 课程
李四 语文数学物理
张三 语文数学物理
*/
create table tb(姓名 varchar(10),课程 varchar(10),分数 int)
insert into tb values('张三','语文',74)
insert into tb values('张三','数学',83)
insert into tb values('张三','物理',93)
insert into tb values('李四','语文',74)
insert into tb values('李四','数学',84)
insert into tb values('李四','物理',94)
go
if object_id('F_Str') is not null
drop function F_Str
go
create function F_Str(@Col1 varchar(10))
returns nvarchar(100)
as
begin
declare @S nvarchar(100)
select @S=isnull(@S+'','')+课程 from tb where 姓名=@Col1
return @S
end
go
Select distinct 姓名,NewString=dbo.F_Str(姓名) from tb
/*
姓名 NewString
---------- ----------------------------------------------------------------------------------------------------
李四 语文数学物理
张三 语文数学物理
*/