

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

# 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\_sensitive'* \| *'cs'* \| *'case\_insensitive'* \| *'ci'*  
照合名を示す文字列定数です。Amazon Redshift は、このパラメータに対して以下の値のみをサポートしています。  
+  *case\_sensitive* 
+  *cs* 
+  *case\_insensitive* 
+  *ci (クリーンスレートインストール* 
*case\_sensitive* と *cs* は互換性があり、同じ結果が得られます。同様に、*case\_insensitive* と *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` になります。2 番目のクエリは `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` になります。2 番目のクエリは `john` のみを返します。

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

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

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

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