站长资源数据库
SQL server使用自定义函数以及游标
简介编号标准宗地编码(landCode)所在区段编码(sectCode)1131001BG001G0012131001BG002G0013131001BG003G0014131001BG004G0025131001BG005G003现在需要将表中的数据转换为如下表所示结果:编号区段编码包含的标准宗地1
编号
标准宗地编码(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
下一篇:很有意思的SQL多行数据拼接