CHARINDEX 関数 - Amazon Redshift

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 | +-----------+-------+