SQL 資料庫函式是什麼?

適用範圍: 是SQL Server (所有支援的版本) 是Azure SQL Database 是Azure SQL 受控執行個體 是Azure Synapse Analytics 是平行處理資料倉儲

深入了解您可以與 SQL 資料庫搭配使用之內建函式的類別。 您可以使用內建函式,或建立您自己的使用者定義函式。

彙總函式

彙總函式會根據一組值來執行計算,再傳回單一值。 它們可在選取清單中或在 SELECT 陳述式的 HAVING 子句中使用。 您可以與 GROUP BY 子句搭配使用彙總來計算資料列類別的彙總。 使用 OVER 子句來計算特定範圍值的彙總。 OVER 子句無法接續在 GROUPING 或 GROUPING_ID 彙總之後。

所有彙總函式都具有確定性,即在相同的輸入值上執行時,它們一律會傳回相同的值。 如需詳細資訊,請參閱確定性與非確定性函式。|

分析函數

分析函數會根據資料列群組計算出彙總值。 但不同於彙總函式,分析函式可以傳回每個群組的多個資料列。 您可以使用分析函式計算群組中的移動平均、最新總數、百分比或前 N 個結果。

排名函數

排名函數會傳回資料分割中每個資料列的次序值。 根據所用的函數而定,有些資料列可能會收到與其他資料列相同的值。 排名函數不具決定性。

資料列集函式

資料列集函式會傳回可在 SQL 陳述式中,依照資料表參考的方式來使用的物件。

純量函式

處理單一值,再傳回單一值。 凡是運算式有效之處,都能夠使用純量函數。

純量函式類別

函數類別目錄 描述
組態函式 傳回目前組態的詳細資訊。
轉換函式 支援資料類型轉型及轉換。
資料指標函式 傳回資料指標的詳細資訊。
日期與時間資料類型與函式 執行作業來處理日期和時間輸入值,以及傳回字串、數值,或日期和時間值。
JSON 函式 驗證、查詢,或變更 JSON 資料。
邏輯函式 執行邏輯運算。
數學函式 根據函數參數所提供的輸入值來執行計算,以及傳回數值。
中繼資料函式 傳回資料庫和資料庫物件的相關資訊。
安全性函式 傳回使用者和角色的相關資訊。
字串函式 執行作業來處理字串 (charvarchar) 輸入值,並傳回字串或數值。
系統函式 執行作業和傳回 SQL Server 執行個體中的值、物件和設定的相關資訊。
系統統計函式 傳回系統的統計資訊。
文字和影像函式 執行作業來處理文字或影像輸入值或資料行,以及傳回值的相關資訊。

函數決定性

SQL Server 內建函數可能具決定性或不具決定性。 如果每當利用一組特定輸入值來呼叫函數時,函數都會傳回相同的值,這些函數便是具決定性。 如果每次呼叫時都可能傳回不同結果,即便使用同一組特定的輸入值也是如此,這些函數便是不具決定性。 如需詳細資訊,請參閱確定性與非確定性函式

函數定序

採取字元字串輸入、傳回字元字串輸出的函數,輸出會使用輸入字串的定序。

使用非字元輸入並傳回字元字串的函數,輸出會使用目前資料庫的預設定序。

採取多重字元字串輸入、傳回單一字元字串的函數,會利用定序優先順序的規則來設定輸出字串的定序。 如需詳細資訊,請參閱定序優先順序 (Transact-SQL)

另請參閱

CREATE FUNCTION (Transact-SQL)
確定性與非確定性函式
使用預存程序 (MDX)