服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Sql Server - SQL server使用自定义函数以及游标

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

2019-12-10 14:41MSSQL教程网 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数据库中,创建自定义函数,通过游标,将表的数据转化为结果表,函数代码如下所示: 

复制代码代码如下:

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 

延伸 · 阅读

精彩推荐