

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# CHARINDEX 関数
<a name="r_CHARINDEX"></a>

文字列内の指定されたサブ文字列の位置を返します。

同様の関数については、「[POSITION 関数](r_POSITION.md)」および「[STRPOS 関数](r_STRPOS.md)」を参照してください。

## 構文
<a name="r_CHARINDEX-synopsis"></a>

```
CHARINDEX( substring, string )
```

## 引数
<a name="charindex-arguments"></a>

 *substring*   
*string* 内を検索するサブ文字列。

 *string*   
検索する文字列または列。

## 戻り型
<a name="charindex-return-type"></a>

 INTEGER   
CHARINDEX 関数は、サブ文字列の位置 (0 ではなく 1 から始まる) に対応する `INTEGER` を返します。position はバイト数ではなく文字数に基づくため、マルチバイト文字は 1 文字としてカウントされます。文字列内でサブ文字列が見つからなかった場合、CHARINDEX は `0` を返します。

## 例
<a name="sub-charindex-usage-notes-examples"></a>

`dog` という語の中での文字列 `fish` の位置を返すには、次の例を使用します。

```
SELECT CHARINDEX('fish', 'dog');

+-----------+
| charindex |
+-----------+
|         0 |
+-----------+
```

`dogfish` という語の中での文字列 `fish` の位置を返すには、次の例を使用します。

```
SELECT CHARINDEX('fish', 'dogfish');

+-----------+
| charindex |
+-----------+
|         4 |
+-----------+
```

 以下の例は、TICKIT サンプルデータベースの SALES テーブルを使用します。詳細については、「[サンプルデータベース](c_sampledb.md)」を参照してください。

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