

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

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

# COLLATE 函數
<a name="r_COLLATE"></a>

COLLATE 函數會覆寫字串欄或運算式的定序。

如需如何使用資料庫定序建立資料表的資訊，請參閱[CREATE TABLE](r_CREATE_TABLE_NEW.md)。

如需如何使用資料庫定序建立資料庫的資訊，請參閱[CREATE DATABASE](r_CREATE_DATABASE.md)。

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

```
COLLATE( string, 'case_sensitive' | 'cs' | 'case_insensitive' | 'ci');
```

## 引數
<a name="r_COLLATE-argument"></a>

 *string*   
您要覆寫的字串欄或運算式。

 *'case\$1sensitive'* \$1 *'cs'* \$1 *'case\$1insensitive'* \$1 *'ci'*  
定序名稱的字串常數。Amazon Redshift 僅針對此參數支援下列值：  
+  *case\$1sensitive* 
+  *cs* 
+  *case\$1insensitive* 
+  *ci* 
*case\$1sensitive* 和 *cs* 可互換，並產生相同的結果。同樣地，*case\$1insensitive* 和 *ci* 可互換，並產生相同的結果。

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

COLLATE 函式會傳回 `VARCHAR`、`CHAR` 或 `SUPER`，取決於第一個輸入表達式類型。此函數只會變更第一個輸入引數的定序，而不會變更其輸出值。

## 範例
<a name="r_COLLATE-example"></a>

若要建立資料表 T 並將資料表 T 中的 col1 定義為 `case_sensitive`，請使用下列範例。

```
CREATE TABLE T ( col1 Varchar(20) COLLATE case_sensitive );

INSERT INTO T VALUES ('john'),('JOHN');
```

 當您執行第一個查詢時，Amazon Redshift 只會傳回 `john`。在 col1 上執行 COLLATE 函數之後，定序會變成 `case_insensitive`。第二個查詢會傳回 `john` 和 `JOHN`。

```
SELECT * FROM T WHERE col1 = 'john';

+------+
| col1 |
+------+
| john |
+------+

SELECT * FROM T WHERE COLLATE(col1, 'case_insensitive') = 'john';

+------+
| col1 |
+------+
| john |
| JOHN |
+------+
```

若要建立資料表 A 並將資料表 A 中的 col1 定義為 `case_insensitive`，請使用下列範例。

```
CREATE TABLE A ( col1 Varchar(20) COLLATE case_insensitive );

INSERT INTO A VALUES ('john'),('JOHN');
```

 當您執行第一個查詢時，Amazon Redshift 會同時傳回 `john` 和 `JOHN`。在 col1 上執行 COLLATE 函數之後，定序會變成 `case_sensitive`。第二個查詢只會傳回 `john`。

```
SELECT * FROM A WHERE col1 = 'john';

+------+
| col1 |
+------+
| john |
| JOHN |
+------+

SELECT * FROM A WHERE COLLATE(col1, 'case_sensitive') = 'john';

+------+
| col1 |
+------+
| john |
+------+
```