求一个sql server 2000 查询(自定义函数)

2024-12-20 12:59:47
推荐回答(2个)
回答1:

建议用游标实现。

我给你写了一个函数,你仔细看吧。

-- =============================================

-- Author:  TLJ

-- Create date:         01/04/2011

-- Description: undefined

-- =============================================

create function [dbo].[getcourses](@name nvarchar(10))

returns nvarchar(100)

as

begin

declare @result nvarchar(100)

declare @temp nvarchar(100)

if(@name is null)

set @result=null

declare mc cursor for select ltrim(rtrim(course)) from student where [name]=@name

open mc

begin

fetch next from mc into @temp

set @result=@temp

end

while @@fetch_status=0

begin

if @temp<>@result

set @result=@result+','+@temp

fetch next from mc into @temp

end

close mc

deallocate mc

return @result

end

回答2:

用游标喽,比较简单。或者使用行列转换算法,比较难。

select *

FROM course 

pivot(max(course)

for course in ([语文],[数学],[英语],[计算机],[几何])) as c

如果有多个course 就要在for 后面输入多个cousre的具体值,经过这步后在进行简单的处理就可以了。经过我测试没问题的。