sql server 自定義函式

2022-08-02 03:00:14 字數 1862 閱讀 3046

自定義函式

如果returns 子句指定一種標量資料型別,則函式為標量值函式

如果returns 子句指定 table,則函式為錶值函式

如果returns 子句指定的table 不附帶列,則該函式為內嵌錶值函式

如果returns 子句指定的table 型別帶有列及其資料型別,則該函式是多語句錶值函式

標量值函式

返回的結果只是乙個標量,返回的結果就是一種型別的乙個值

呼叫方法(select sumresult(6443) as result)

--

標量值函式(create function 函式名(@引數名 型別))

create function sumresult(@user_id varchar(

250))

--返回值資料型別(returns 返回值資料型別)

returns varchar(

250)

asbegin

--宣告變數或返回值

declare @ret varchar(

250)

--給變數賦值

set @ret=''

--給變數賦值

select @ret=sum(holidays) from jkzx_nxj where user_id=@user_id--引數

--返回值資料

return

@ret

end

--標量值函式  

create function getsum (@num1

int , @num2 int

)returns

intas

begin

declare @return

intset @return = @num1 +@num2

return

@return

end

select dbo.getsum(1,3)

內聯錶值函式

內聯錶值函式返回的是表資料,它返回的是乙個表內錶值型函式沒有由begin-end語句括起來的函式體

呼叫方法(select * from dsoa.catablr(6443))

--

錶值函式(create function 函式名(@引數名 型別))

create function catablr(@user_id varchar(

250))

--返回表資料型別

returns table

as--

返回查詢的表資料

return(

--select 語句

select [id],[year],[createdate],[user_id],[dept] from jkzx_nxj where user_id=@user_id

)go

多語句錶值函式

多語句錶值函式跟內聯錶值函式都是錶值函式,它們返回的結果都是table型別

多語句錶值函式顧名思義,就是可以通過多條語句來建立table型別的資料。

這裡不同於內聯錶值函式,內聯錶值函式的返回結果是由函式體內的select語句來決定。

而多語句錶值函式,則是需要指定具體的table型別的結構。也就是說返回的table,已經定義好要哪些字段返回。所以它能夠支援多條語句的執行來建立table資料。

sql** 還未涉及到略

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

SQL SERVER 自定義函式

sql server自定義函式分三種 注意returns,需要加 s 標量值函式,內聯式錶值函式,多語句錶值函式。標量值函式 create function funcname a int returns intas begin sql語句 return intend 內聯式錶值函式 沒有begin....