SQL入門經典 九 之自定義函式

2022-03-18 15:43:34 字數 727 閱讀 1693

udf和儲存過程很類似,使用者自定義函式是一組有序的t-sql語句,這些語句被預先優化和編譯,並且可以作為乙個單元來測試呼叫。udf和儲存過程的主要區別在於結果返回方式,為了能支援更多返回值,udf比儲存過程有跟多限制。

udf基本語法:create function ( [default value][......n)

returns  《返回型別》

as  begin  /****/  end

試一試最簡單是udf:

create

function fun_getdatediff(@startdate

datetime,@enddate

datetime

)returns

intas

begin

return

datediff(month,@startdate,@enddate

);end

goselect productid,sum(linetotal) from purchasing.purchaseorderdetail where dbo.fun_getdatediff(duedate,getdate())=

142/**/

group

by productid --

查詢前的142的資料

view code

修改udf:直接把create 改為alter就可以了。udf基本和儲存過程差不多的。

經典SQL自定義函式

1 確定某年某月有多少天 實現原理 先利用datediff取得當前月的第一天,再將月份加一取得下月第一天,然後減去1分鐘,再取日期的 天數部分,即為當月最大日期,也即當月天數 create function daysinmonth date datetime returns int asbegin ...

經典SQL自定義函式

1 確定某年某月有多少天 實現原理 先利用datediff取得當前月的第一天,再將月份加一取得下月第一天,然後減去1分鐘,再取日期的 天數部分,即為當月最大日期,也即當月天數 create function daysinmonth date datetime returns int asbegin ...

經典SQL自定義函式

1 確定某年某月有多少天 實現原理 先利用datediff取得當前月的第一天,再將月份加一取得下月第一天,然後減去1分鐘,再取日期的 天數部分,即為當月最大日期,也即當月天數 create function daysinmonth date datetime returns int asbegin ...