

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 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*   
第二個參數是在 *string* 內要搜尋的子字串。

## 傳回類型
<a name="r_STRPOS-return-type"></a>

INTEGER  
STRPOS 函數傳回對應於*子字串*位置的 `INTEGER` (以 1 開始，不是以零開始)。位置以字元數為基礎，而不是位元組，所以多位元組字元視為單一字元。

## 使用須知
<a name="r_STRPOS_usage_notes"></a>

如果在 *string* 內找不到 *substring*，STRPOS 會傳回 `0`。

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

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

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

若要顯示 `fish` 內 `dogfish` 的位置，請使用下列範例。

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