欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL server使用自定义函数以及游标

程序员文章站 2023-12-05 18:16:16
编号 标准宗地编码(landcode) 所在区段编码(sectcode) 1 131001bg001 g001...

编号

标准宗地编码(landcode)

所在区段编码(sectcode)

1

131001bg001

g001

2

131001bg002

g001

3

131001bg003

g001

4

131001bg004

g002

5

131001bg005

g003

现在需要将表中的数据转换为如下表所示结果:

编号

区段编码

包含的标准宗地

1

g001

131001bg001,131001bg002,131001bg003

2

g002

131001bg004

3

g003

131001bg005

在sql server数据库中,创建自定义函数,通过游标,将表的数据转化为结果表,函数代码如下所示:

复制代码 代码如下:

create function combstr(@name nvarchar(50))
returns nvarchar(300)
as
begin
declare @resultstr nvarchar(300)
declare @tempstr nvarchar(500)
declare @flag int
declare mycur cursor --定义游标
for(select landcode from land where sectcode=@name )
open mycur –-打开游标
fetch next from mycur into tempstr –将游标下移
set @flag=0
while @@fetch_status=0
begin
if @flag=0
begin
set @resultstr=@tempstr
end
else
begin
set @resultstr=@resultstr+','+@tempstr
end
set @flag=@flag+1
fetch next from mycur into @tempstr
end
close mycur
deallocate mycur
return @result
end