使用者自定義函式

2021-08-01 22:42:35 字數 1831 閱讀 6884

create function 架構名.function_name(@傳入變數1 變數_型別, @傳入變數2 變數_型別......)

returns return_date_type

asbegin

--declare the return variable here

declare @variable1 variable_type...

...--add the t-sql statements to compute the return value here

--return the result of function

return @..

endgo

執行函式體

--方法一 select 架構名.functionname(..引數)

--方法二 用executr關鍵字來執行標量值函式,此外還可以用於儲存過程等,

首先要申明乙個用於儲存輸出的變數,然後execute來呼叫函式

declare @val1 val_type;

execute @val1 = 架構名.functionname @傳入變數名 = '...'

修改函式的話

alter function

functionname

()//....後面就和建立的差不多啦

例子

//求 輸入乙個employee的出生日期,求的他的年齡,用乙個函式實現

create function dbo.getemployeeage(@birthdate datetime)

returns int

asbegin

declare @age

intselect

@age = datediff(year, @birthdate, getdate())

return

@age

endgo

select dbo.getemployeeage('3/23/1982')

或者declare @age

int;

exec

@age = dbo.getemployeeage @birthdate='3/23/1982'

create function 架構名.functionname (@傳入引數 引數累心,...

.)returns table

as--function body

return(select

.....from...

...(where

...))

go

執行函式體

用select執行

select * from 架構名.函式名(引數1,引數2.

...)

例子

使用student資料庫中適當的表,建立乙個自定義函式-xbxs,該函式可以根據輸入的系部名稱返回學生的學號,姓名和入學時間。
create function xbxs(@sdeptno nvarchar(20))

returns table

as return (select sno 學號, sname 姓名, null 入學時間 from dbo.student)

goselect * from dbo.xbxs('cs')

go

使用者自定義函式

舉例來說明 cat datafile northwest nw joel craig 3.0 98 3 4 western we sharon kelly 5.3 97 5 23 southwest sw chris foster 2.7 8 2 18 southern so may chin 5....

SQL 使用者自定義函式

使用者自定義函式是 sql server 的資料庫物件,它不能用於執行一系列改變資料庫狀態的操作,但它可以像系統函式一樣在查詢或儲存過程等的程式段中使用,也可以像儲存過程一樣通過 execute 命令來執行。使用者自定義函式中儲存了乙個 transact sql 例程,可以返回一定的值。在sql s...

hive使用者自定義函式

1 繼承udf類,實現evaluate函式。2 繼承抽象類genericudf,可以處理標準udf無法處理的操作,比如可以根據語句中輸入的引數而產生複雜的處理邏輯。3 udaf自定義聚合函式。4 udtf自定義表生成函式,繼承抽象類genericudtf。5 巨集命令 提供了hiveql中呼叫其它函...