在数据库中创建用户自定义的函数格式如下:
语言: Codee#3957
create function 函数名(@parameter para_type)
return return_type
as
begin
declare @parameter1 para1_type
declare @parameter2 para2-type
……
set parameter2=……
……
return (返回值)
end
return return_type
as
begin
declare @parameter1 para1_type
declare @parameter2 para2-type
……
set parameter2=……
……
return (返回值)
end
以上书写自定义函数的格式。根据以上格式现自定义一个函数实现日期型到字符串类型之间的转换,代码如下:
SQL语言: Codee#3958
create function dateToStr(@inputPara as datetime)
return char(10)
as
begin
return ltrim(str(year(@inputPara)))+‘-’+ltrim(str(month(@inputPara)))+‘-’+ltrim(str(day(@inputPara)))
end
return char(10)
as
begin
return ltrim(str(year(@inputPara)))+‘-’+ltrim(str(month(@inputPara)))+‘-’+ltrim(str(day(@inputPara)))
end
另一个例子如下:
SQL语言: Codee#3959
create function fun(@param int)
return varchar(200)
as
begin
declare @str varchar(200)
declare @temp int
declare @operateType int
declare @i int
select @i=11,@operateType=11,@str=”,@temp=@param
while(@i>10)
begin
select @temp=relatedPool,@str=@str+”+cast(relatedPool as char),@operateType=operateType from departPool where poolId=@temp
set @i=@operateType
end
return (@str)
end
return varchar(200)
as
begin
declare @str varchar(200)
declare @temp int
declare @operateType int
declare @i int
select @i=11,@operateType=11,@str=”,@temp=@param
while(@i>10)
begin
select @temp=relatedPool,@str=@str+”+cast(relatedPool as char),@operateType=operateType from departPool where poolId=@temp
set @i=@operateType
end
return (@str)
end
其中在sql语句中按照如下语法进行调用:
SQL语言: Codee#3960
select distinct(dbo.fun(2)) from departPool
2009/08/03 | sunny | 441 Views