

 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/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# POSITION 函數
<a name="r_POSITION"></a>

傳回指定子字串在一個字串內的位置。

如需相似函數，請參閱 [CHARINDEX 函數](r_CHARINDEX.md) 和 [STRPOS 函數](r_STRPOS.md)。

## 語法
<a name="position-synopsis"></a>

```
POSITION(substring IN string )
```

## 引數
<a name="r_POSITION-arguments"></a>

 *substring*   
在 *string* 內要搜尋的子字串。

 *string*   
要搜尋的字串或欄。

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

POSITION 函數傳回對應於子字串位置的 `INTEGER` (以 1 開始，不是以零開始)。位置以字元數為基礎，而不是位元組，所以多位元組字元視為單一字元。如果在字串內找不到子字串，POSITION 會傳回 `0`。

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

若要顯示字串 `fish` 在單字 `dog` 內的位置，請使用下列範例。

```
SELECT POSITION('fish' IN 'dog');

+-----------+
|  position |
+-----------+
|         0 |
+-----------+
```

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

```
SELECT POSITION('fish' IN 'dogfish');

+-----------+
|  position |
+-----------+
|         4 |
+-----------+
```

 以下範例使用 TICKIT 範例資料庫中的 SALES 資料表。如需詳細資訊，請參閱[範本資料庫](c_sampledb.md)。

若要從 SALES 資料表中傳回佣金超過 999.00 的不同銷售交易次數，請使用下列範例。此命令透過檢查佣金值開頭的小數是否超過 4 位元來計算大於 999.00 的佣金。

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

+-----------+-------+
|  position | count |
+-----------+-------+
|         5 |   629 |
+-----------+-------+
```