

 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/)を参照してください。

# STRPOS 関数
<a name="r_STRPOS"></a>

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

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

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

```
STRPOS(string, substring )
```

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

 *string*   
最初の入力パラメータは、検索する `CHAR` または `VARCHAR` 文字列です。

 *substring*   
2 番目のパラメータは、*string* 内で検索するサブ文字列です。

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

INTEGER  
STRPOS 関数は、*substring* の位置に対応する `INTEGER` (0 ではなく 1 から始まる) を返します。位置はバイト数ではなく文字数に基づくため、マルチバイト文字は 1 文字としてカウントされます。

## 使用に関する注意事項
<a name="r_STRPOS_usage_notes"></a>

*string* 内で *substring* が見つからない場合、STRPOS は `0` を返します。

```
SELECT STRPOS('dogfish', 'fist');

+--------+
| strpos |
+--------+
|      0 |
+--------+
```

## 例
<a name="r_STRPOS-examples"></a>

`dogfish` 内の `fish` の位置を示すには、次の例を使用します。

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

+--------+
| strpos |
+--------+
|      4 |
+--------+
```

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

SALES テーブル内で COMMISSION が 999.00 を上回る販売取引の数を返すには、次の例を使用します。

```
SELECT DISTINCT STRPOS(commission, '.'),
COUNT (STRPOS(commission, '.'))
FROM sales
WHERE STRPOS(commission, '.') > 4
GROUP BY STRPOS(commission, '.')
ORDER BY 1, 2;

+--------+-------+
| strpos | count |
+--------+-------+
|      5 |   629 |
+--------+-------+
```