SQL Server自定義函式的使用

2021-09-24 17:36:04 字數 1510 閱讀 5554

1.在 sql server 中根據函式返回值形式的不同將使用者自定義函式分為三種型別

(1)標量函式

(2)內聯錶值函式

(3)多語句錶值函式

注意:與程式語言中的函式不同的是,sql server 自定義函式必須具有返回值。

2.三種自定函式的異同點

(1)同點:

建立定義相同:         create function f_name(傳入的引數名稱    傳入引數的型別)                                

returns         返回值型別                                 

as

(2)異點:

a.標量值函式返回的是乙個資料型別值,

內聯錶值函式返回的是乙個table,而多語句錶值函式返回的是乙個table的變數(類似前面兩個的結合);  

b.語法的結構:標量值函式和多語句錶值函式都是要有begin.........................end,內聯錶值函式就沒有;      

c.呼叫:標量函式要寫成dbo.function_name;

3.自定義函式的應用

(1)標量函式

標量函式返回乙個確定型別的標量值,其返回值型別為除text、ntext、image、cursor、timestamp和table型別外的其它資料型別。函式體語句定義在begin-end語句內。在 returns 子句中定義返回值的資料型別,並且函式的最後一條語句必須為return語句。例項如下:

如圖:根據學生id,判斷其分數處於哪個等級

(2)內聯錶值函式

內聯錶值型函式以表的形式返回乙個返回值,即它返回的是乙個表。內聯錶值型函式沒有由begin-end 語句括起來的函式體。其返回的表是由乙個位於 return 子句中的 select 命令從資料庫中篩選出來。內聯錶值型函式功能相當於乙個引數化的檢視。例項如下:

如圖:根據學生id,查詢該學生在學生表的所有資訊,呼叫時不用加dbo.

(3)多語句錶值函式

多語句錶值函式可以看作標量函式和內聯錶值函式的結合體。它的返回值是乙個表,但它和標量型函式一樣有乙個用 begin-end 語句括起來的函式體,返回值的表中的資料是由函式體中的語句插入的。由此可見,它可以進行多次查詢,對資料進行多次篩選與合併,彌補了內聯錶值函式的不足。

例項如圖所示:

呼叫多語句錶值函式:和呼叫內聯錶值函式一樣,呼叫時不需制定架構名。

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