編號 |
標準宗地編碼(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