共用方式為


SQL 資料庫函式是什麼?

適用於:SQL ServerAzure SQL 資料庫Azure SQL 受控執行個體Azure Synapse Analytics分析平台系統(PDW)Microsoft Fabric 中的 SQL 分析端點Microsoft Fabric 中的倉儲Microsoft Fabric 中的 SQL 資料庫

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

彙總函式

彙總函式會根據一組值來執行計算,再傳回單一值。 允許它們出現在選取清單或 HAVING 陳述式的 SELECT 子句中。 您可以將彙總與 GROUP BY 子句結合使用,以計算列類別的彙總。 使用子 OVER 句來計算特定值範圍的彙總。 子 OVER 句不能遵循 or GROUPINGGROUPING_ID 彙總。

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

分析函數

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

位元操作函數

適用於: SQL Server 2022 (16.x) 及以後版本、Azure SQL Managed Instance、Azure SQL Database、Microsoft Fabric 中的 SQL 資料庫

比起個別位元,位元操作函數可讓您更有效率地處理及儲存資料。 如需詳細資訊,請參閱位元操作函數

組態功能

組態功能是標量函數,會回傳目前組態選項設定的資訊,例如 @@SERVERNAME(Transact-SQL)

所有組態函數的運算結果充滿不確定性。 換言之,這些函數並非每次呼叫時,都會傳回相同的結果,即便使用同一組輸入值也是如此。 欲了解更多函數決定性,請參見 決定性與非確定性函數

排名函數

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

資料列集函式

數據列集函式 傳回物件,可以像 SQL 語句中的數據表參考一樣使用。

純量函式

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

純量函式類別

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

字串函數

標量函式對字串輸入值執行操作,並回傳字串或數值,例如 ASCII (Transact-SQL)

除了外 FORMAT ,所有內建的字串函數都是確定性的。 這表示每次用特定輸入值呼叫時,它們都會回傳相同的值。 欲了解更多函數決定性,請參見 決定性與非確定性函數

當字串函式被傳遞非字串值的參數時,輸入型別會隱含地轉換成文字資料型態。 欲了解更多資訊,請參閱資料型別轉換(資料庫引擎)。

函數決定性

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

函數定序

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

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

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

限制

如需函數類型及平台限制的相關資訊,請參閱 CREATE FUNCTION (Transact-SQL)。