sql server 2000 允許使用者建立自定義函式,自定義函式可以有返回值。
自定義函式分為:標量值函式或表值函式
如果 returns
子句指定一種標量資料型別,則函式為標量值函式。可以使用多條
transact-sql
語句定義標量值函式。
如果 returns
子句指定
table
,則函式為表值函式。
錶值函式又可分為:內嵌錶值函式(行內函式)或多語句函式
如果 returns
子句指定的
table
不附帶列的列表,則該函式為內嵌錶值函式。
如果 returns
子句指定的
table
型別帶有列及其資料型別,則該函式是多語句錶值函式。
標量值函式示例
**如下:
create function dbo.foo()
returns int
asbegin
declare @n int
select @n=3
return @n
end內嵌錶值函式示例
**如下:
create function dbo.foo()
returns table
asreturn select id, title from msgs
內嵌錶值函式只有乙個 select
語句。
多語句錶值函式示例(部分)
**如下:
create function fn_findreports (@inempid nchar(5))
returns @retfindreports table (empid nchar(5) primary key,
empname nvarchar(50) not null,
mgrid nchar(5),
title nvarchar(30))
...語法格式:
create function 《函式名稱
>
(-- 函式的引數(可以多個)
<@param1, sysname, @p1> ,
<@param2, sysname, @p2>
)returns
<@表變數名
> table
(-- 返回的虛擬表中的字段 欄位名 型別,)
asbegin
-- 函式體,裡面可以定義一些變數,總之最後返回的應該是個結果集
return
endgo
寫法(工作中的例子):
create function getcallbackdata
(@mycallerno varchar(30),
@myid int
)returns @callbdata table
(callerarea varchar (10),
status int,
route int,
prefix varchar(20),
pcell int,
prate money,
prov varchar(20) null)as
begin
declare @arecode varchar(10),
@status int,
@route int,
@prefix varchar(20),
@pcell int,
@prate money,
@prov varchar(20)
select @arecode=areacode from sd_areaplay
select @status=state from sd_account where pin='@mycallerno'
select @prefix=prefix from sd_platformrouter
select @pcell=feesec,@prate=afterfreefee from sd_payplan
insert into @callbdata values(@arecode,@status,@route,@prefix,@pcell,@prate,@prov);
return
endgo
呼叫方法:
select callerarea,status,route,prefix,pcell,prate,prov from t.getcallbackdata('mycallerno',mypid)
實際上,使用自定義函式還是很簡單的!
sql server自定義函式學習筆記
sql server中函式分別有 錶值函式 標量函式 聚合函式 系統函式。這些函式中除系統函式外其他函式都需要使用者進行自定義。一 錶值函式 簡單錶值函式 建立create function fu selectuser returns table 錶值函式返回型別為table asreturn se...
SQL SERVER 自定義函式
元宵節快樂 自定義函式分為兩類 一類為 標量函式,一類為表值函式。create funetion 函式名 引數 return 返回值資料型別 with as begin sql語句 必須有return 變數或值 end 一 內聯 值函式 create function 函式名 引數 returns ...
sqlserver自定義函式
returns 子句指定一種標量資料型別,則函式為標量值函式。語法create function 函式名 引數 returns 返回值資料型別 with as begin sql語句 必須有return 變數或值 end 釋義 列子 create function funcgetresult ret...