Microsoft SQL データベース関数とは

適用対象: はいSQL Server (サポートされているすべてのバージョン) はいAzure SQL データベース はいAzure SQL Managed Instance はいAzure Synapse Analytics はいParallel Data Warehouse

SQL データベースで使うことができる組み込み関数のカテゴリについて説明します。 組み込み関数を使うか、独自のユーザー定義関数を作成することができます。

集計関数

集計関数は、値の集まりに対して計算を実行し、1 つの値を返します。 SELECT ステートメントの選択リストまたは HAVING 句で使うことができます。 集計を GROUP BY 句と組み合わせて使って、行のカテゴリに対する集計を計算できます。 特定の値範囲の集計を計算するには、OVER 句を使います。 GROUPING または GROUPING_ID の集計の後に OVER 句を使うことはできません。

すべての集計関数は決定論的であり、同じ入力値に対して実行すると常に同じ値を返します。 詳しくは、「決定的関数と非決定的関数」をご覧ください。

分析関数

分析関数によって、行のグループに基づいた集計値が計算されます。 ただし集計関数とは異なり、分析関数は各グループについて複数の行を返すことがあります。 分析関数を使うと、グループ内の移動平均、集計途中経過、パーセンテージまたは上位 N 位の結果を計算できます。

順位付け関数

順位付け関数により、パーティションの各行の順位値が返されます。 使用する関数によっては、いくつかの行で、他の行と同じ値を受け取る場合があります。 順位付け関数は非決定的です。

行セット関数

行セット関数は、SQL ステートメントの中でテーブル参照のように使用できるオブジェクトを返します。

スカラー関数

1 つの値に対して操作を行い、1 つの値を返します。 スカラー関数は、式を使用できるすべての場所で使用できます。

スカラー関数のカテゴリ

関数のカテゴリ 説明
構成関数 現在の構成についての情報を返します。
変換関数 データ型のキャストと変換をサポートします。
カーソル関数 カーソルについての情報を返します。
日付と時刻のデータ型および関数 日付時刻型の入力値に対して操作を実行し、文字列値、数値、または日付時刻値を返します。
JSON 関数 JSON データを検証、クエリ、または変更します。
論理関数 論理演算を実行します。
数学関数 パラメーターとして関数に渡された入力値に基づいて計算を実行し、数値を返します。
メタデータ関数 データベースおよびデータベース オブジェクトについての情報を返します。
セキュリティ関数 ユーザーとロールについての情報を返します。
文字列関数 文字列型 (char または varchar) の入力値に対して操作を実行し、文字列値または数値を返します。
システム関数 値、オブジェクト、および SQL Server のインスタンス内の設定値に対して操作を実行し、それについての情報を返します。
システム統計関数 システムについての統計情報を返します。
テキストとイメージ関数 テキスト入力値、イメージ入力値、または列に対して操作を実行し、値についての情報を返します。

関数の決定性

SQL Server の組み込み関数は、決定的または非決定的のいずれかです。 特定の一連の入力値を使用して呼び出されたときに必ず同じ結果を返す場合、その関数は決定的です。 同じ特定の一連の入力値を使用しても呼び出すたびに異なる結果を返す場合、その関数は非決定的です。 詳しくは、「決定的関数と非決定的関数」をご覧ください。

関数の照合順序

入力に文字列を使用し、出力に文字列を返す関数の場合、入力文字列の照合順序が出力に適用されます。

入力に文字列以外を使用し、文字列を返す関数の場合は、現在のデータベースの既定の照合順序が出力に適用されます。

入力に複数の文字列を使用し、単一の文字列を返す関数の場合は、照合順序の優先順位ルールによって出力文字列の照合順序が設定されます。 詳細については、「照合順序の優先順位 (Transact-SQL)」を参照してください。

参照

CREATE FUNCTION (Transact-SQL)
決定的関数と非決定的関数
ストアド プロシージャの使用 (MDX)