--创建测试环境
create table T1( id int , value varchar (50))
go
--追加测试数据
insert T1( id ,value ) values (1,'数学')
insert T1( id ,value ) values (1,'语文')
insert T1( id ,value ) values (2,'化学')
insert T1( id ,value ) values (3,'美术')
insert T1( id ,value ) values (3,'音乐')
insert T1( id ,value ) values (4,'物理')
insert T1( id ,value ) values (4,'数学')
insert T1( id ,value ) values (5,'体育')
go
--创建自定义函数
create function dbo.CX(@id int)
returns varchar(8000)
as
begin
declare @s varchar(8000)
set @s = ''
select @s = @s + ',' + value from T1 where id = @id
set @s = stuff(@s,1,1,'')
return @s
end
go
select * from t1
--调用
select id, dbo.cx(id) as value
from t1
group by id
order by id
--删除临时表和自定义函数
drop table T1
drop function CX
/*
--测试结果
ID Value
-------------------------
1 数学,语文
2 化学
3 美术,音乐
4 物理,数学
5 体育
*/
create table t3 (ID int,Value varchar(10))
insert into t3 select 1,'数学'
insert into t3 select 1,'语文'
insert into t3 select 2,'化学'
insert into t3 select 3,'美术'
insert into t3 select 3,'音乐'
insert into t3 select 4,'物理'
insert into t3 select 4,'数学'
insert into t3 select 5,'体育'
go
create function getstr(@content varchar(100))
returns varchar(2000)
as
begin
declare @str varchar(2000)
set @str=''
select @str=@str+','+Value from t3 where ID=@content
select @str=right(@str,len(@str)-1)
return @str
end
go
select id,dbo.getstr(id) as value from t3 group by id
drop function getstr
drop table t3
/*
id value
----------- -------------------
1 数学,语文
2 化学
3 美术,音乐
4 物理,数学
5 体育
--创建测试环境
create table T1( id int , value varchar (50))
go
--追加测试数据
insert T1( id ,value ) values (1,'数学')
insert T1( id ,value ) values (1,'语文')
insert T1( id ,value ) values (2,'化学')
insert T1( id ,value ) values (3,'美术')
insert T1( id ,value ) values (3,'音乐')
insert T1( id ,value ) values (4,'物理')
insert T1( id ,value ) values (4,'数学')
insert T1( id ,value ) values (5,'体育')
go
--创建自定义函数
create function dbo.CX(@id int)
returns varchar(8000)
as
begin
declare @s varchar(8000)
set @s = ''
select @s = @s + ',' + value from T1 where id = @id
set @s = stuff(@s,1,1,'')
return @s
end
go
select * from t1
--调用
select id, dbo.cx(id) as value
from t1
group by id
order by id
create function getstr(@content varchar(100))
returns varchar(2000)
as
begin
declare @str varchar(2000)
set @str=''
select @str=@str+','+Valuefrom tTest where ID=@content
select @str=right(@str,len(@str)-1)
return @str
end
go
select id,dbo.getstr(id) as value from tTest group by id