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

   最近忙于动态监测软件的开发,处理有关标准宗地编码和区段编码关系,关系如下表所示:

 

编号

标准宗地编码(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数据库中,创建自定义函数,通过游标,将表的数据转化为结果表,函数代码如下所示:

SQL 自定义函数 游标
 1 create function combstr(@name nvarchar(50))
2 returns nvarchar(300)
3 as
4 begin
5 declare @resultStr nvarchar(300)
6 declare @tempStr nvarchar(500)
7 declare @flag int
8 declare myCur cursor --定义游标
9 For(select landCode from land where sectCode=@name )
10 open myCur –-打开游标
11 fetch next from myCur into tempStr –将游标下移
12 set @flag=0
13 while @@fetch_status=0
14 begin
15 if @flag=0
16 begin
17 set @resultStr=@tempStr
18 end
19 else
20 begin
21 set @resultStr=@resultStr+','+@tempStr
22 end
23 set @flag=@flag+1
24 fetch next from myCur into @tempStr
25 end
26 close myCur
27 deallocate myCur
28 return @result
29 end

 

posted @ 2011-10-31 14:28  Peter.Luo  阅读(1509)  评论(2)    收藏  举报