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 |
复制代码 代码如下:
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