create function func_str_sum(@editId int,@editCardNum int) returns varchar(8000) as begin declare @sums varchar(8000) set @sums='' select @sums=@sums+','+cast(doModule as varchar(10)) from taba where editId=@editId and editCardNum=@editCardNum return(stuff(@sums,1,1,'')) end go select select editId ,editCardNum , dbo.func_str_sum(editId, editCardNum) as doModuleList from taba group by editId ,editCardNum
--生成测试数据 create table taba( autoid int, editId int, editCardNum int, doModule int, ispermit int) insert into taba values(13 ,9 ,1 ,1 ,0) insert into taba values(14 ,9 ,1 ,2 ,0) insert into taba values(15 ,10 ,2 ,1 ,1) insert into taba values(16 ,10 ,2 ,3 ,1) insert into taba values(17 ,10 ,3 ,2 ,1)--创建自定义函数 create function func_str_sum(@editId int,@editCardNum int) returns varchar(8000) as begin declare @sums varchar(8000) set @sums='' select @sums=@sums+','+cast(doModule as varchar(10)) from taba where editId=@editId and editCardNum=@editCardNum return(stuff(@sums,1,1,'')) end go--查询以返回期望的结果集 select select editId ,editCardNum , dbo.func_str_sum(editId, editCardNum) as doModuleList from taba group by editId ,editCardNum --输出 editid editcardnum doModuleList --------------------------------------- 9 1 1,2 10 2 1,3 10 3 2
create function func_str_sum(@editId int,@editCardNum int)
returns varchar(8000)
as
begin
declare @sums varchar(8000)
set @sums=''
select @sums=@sums+','+cast(doModule as varchar(10))
from taba where editId=@editId and editCardNum=@editCardNum
return(stuff(@sums,1,1,''))
end
go
select select editId ,editCardNum , dbo.func_str_sum(editId, editCardNum) as doModuleList from taba group by editId ,editCardNum
create table taba(
autoid int,
editId int,
editCardNum int,
doModule int,
ispermit int)
insert into taba values(13 ,9 ,1 ,1 ,0)
insert into taba values(14 ,9 ,1 ,2 ,0)
insert into taba values(15 ,10 ,2 ,1 ,1)
insert into taba values(16 ,10 ,2 ,3 ,1)
insert into taba values(17 ,10 ,3 ,2 ,1)--创建自定义函数
create function func_str_sum(@editId int,@editCardNum int)
returns varchar(8000)
as
begin
declare @sums varchar(8000)
set @sums=''
select @sums=@sums+','+cast(doModule as varchar(10))
from taba where editId=@editId and editCardNum=@editCardNum
return(stuff(@sums,1,1,''))
end
go--查询以返回期望的结果集
select select editId ,editCardNum , dbo.func_str_sum(editId, editCardNum) as doModuleList from taba group by editId ,editCardNum
--输出
editid editcardnum doModuleList
---------------------------------------
9 1 1,2
10 2 1,3
10 3 2