CHARINDEX 関数
文字列内の指定されたサブ文字列の位置を返します。
同様の関数については、「POSITION 関数」および「STRPOS 関数」を参照してください。
構文
CHARINDEX( substring, string )
引数
- substring
-
string 内を検索するサブ文字列。
- string
-
検索する文字列または列。
戻り型
- INTEGER
-
CHARINDEX 関数は、サブ文字列の位置 (0 ではなく 1 から始まる) に対応する
INTEGER
を返します。position はバイト数ではなく文字数に基づくため、マルチバイト文字は 1 文字としてカウントされます。文字列内でサブ文字列が見つからなかった場合、CHARINDEX は0
を返します。
例
dog
という語の中での文字列 fish
の位置を返すには、次の例を使用します。
SELECT CHARINDEX('fish', 'dog');
+-----------+ | charindex | +-----------+ | 0 | +-----------+
dogfish
という語の中での文字列 fish
の位置を返すには、次の例を使用します。
SELECT CHARINDEX('fish', 'dogfish');
+-----------+ | charindex | +-----------+ | 4 | +-----------+
以下の例は、TICKIT サンプルデータベースの SALES テーブルを使用します。詳細については、「サンプルデータベース」を参照してください。
SALES テーブル内でコミッションが 999.00 を上回る販売取引の数を返すには、次の例を使用します。このコマンドは、999.00 を超えるコミッションをカウントします。これは、小数点以下の桁数がコミッション値の先頭から 4 桁より大きいかどうかを調べることでカウントされます。
SELECT DISTINCT CHARINDEX('.', commission), COUNT (CHARINDEX('.', commission)) FROM sales WHERE CHARINDEX('.', commission) > 4 GROUP BY CHARINDEX('.', commission) ORDER BY 1,2;
+-----------+-------+ | charindex | count | +-----------+-------+ | 5 | 629 | +-----------+-------+