1. 程式人生 > >SQL Server 中函數的理解總結

SQL Server 中函數的理解總結

處理 操作 標量 之間 div 方式 再看 sel 聚合

T-SQL語言為我們提供了更加靈活的方式操作數據,那就是函數,函數總的分為三大類:標量函數:(傳入一個參數,再傳出一個參數)聚合函數(傳入多個參數,傳出一個參數),表值函數(傳入一個結果集對象,讓我們能夠通過對表的操作對其進行處理),表值函數在此進行細分的話可以分為兩類:內嵌表值函數和多語句表值函數。內嵌表值函數模樣如下:

1 CREATE FUNCTION my_fun()RETURNS TABLE
2 AS
3     RETURN 
4         SELECT * FROM Table_1

寫函數容易出錯的細節在於RETURNS與RETURN的區別

以上就是內嵌表值函數,下面再看看多語句表值函數:

課本上指出內嵌表值函數與多語句表值函數的區別為:

內嵌表值函數沒有函數主題(BEGIN-END)返回的是單個SELECT的結果集;而多語句表值函數在BEGIN-END之間是由多個T-SQL語句序列構成,這些語句可以生成記錄行並將行插入到表中,然後返回表。              ----《SQL Server教程第三版》

下面是一個多語句表值函數的示例:

CREATE FUNCTION myfun_2()RETURNS @my_list
(
      Column_1 char(10),
      Column_2 char(10)              
)
AS
    BEGIN
INSERT @my_list --操作 END

函數在傳值的時候可以加一些對值的修飾,包括只讀,默認值等等,與其他語言很是相似

SQL Server 中函數的理解總結