SQL Server 中函數的理解總結
阿新 • • 發佈:2017-05-30
處理 操作 標量 之間 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 BEGININSERT @my_list --操作 END
函數在傳值的時候可以加一些對值的修飾,包括只讀,默認值等等,與其他語言很是相似
SQL Server 中函數的理解總結