SQLServer自定義函式學習

2021-06-17 14:20:09 字數 2293 閱讀 1021

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...