COLLATE演算子は照合順序を指定するために使用され、文字型の照合順序を再設定したり、単一の式に対して照合順序を指定したりすることができます。
COLLATE は後接一項演算子であり、他の一項演算子と同じ優先順位を持ちますが、すべての前置一項演算子の後に実行されます。COLLATE 演算子は VARCHAR2、CHAR、NVARCHAR、または NCHAR タイプの式に適用できます。
COLLATE 演算子の後にはパラメータ collation_name を続けて指定し、設定または使用する照合順序を示します。照合順序名にスペースが含まれる場合は、名前の前後にダブルクォーテーションマークを付ける必要があります。
例:
obclient> CREATE TABLE t1(c1 VARCHAR(20));
Query OK, 0 rows affected
obclient> INSERT INTO t1 VALUES('a'),('b'),(1);
Query OK, 3 rows affected
Records: 3 Duplicates: 0 Warnings: 0
obclient> SELECT * FROM t1 ORDER BY c1 COLLATE utf8mb4_general_ci;
+------+
| C1 |
+------+
| 1 |
| a |
| b |
+------+
3 rows in set
SHOW COLLATION; コマンドを使用すると、OceanBaseデータベースの現在のバージョンでサポートされているソートルールを確認できます。
obclient> SHOW COLLATION;
+--------------------+---------+-----+---------+----------+---------+
| COLLATION | CHARSET | ID | DEFAULT | COMPILED | SORTLEN |
+--------------------+---------+-----+---------+----------+---------+
| utf8mb4_general_ci | utf8mb4 | 45 | Yes | Yes | 1 |
| utf8mb4_bin | utf8mb4 | 46 | NULL | Yes | 1 |
| binary | binary | 63 | Yes | Yes | 1 |
| gbk_chinese_ci | gbk | 28 | Yes | Yes | 1 |
| gbk_bin | gbk | 87 | NULL | Yes | 1 |
| utf16_general_ci | utf16 | 54 | Yes | Yes | 1 |
| utf16_bin | utf16 | 55 | NULL | Yes | 1 |
| utf8mb4_unicode_ci | utf8mb4 | 224 | NULL | Yes | 1 |
| utf16_unicode_ci | utf16 | 101 | NULL | Yes | 1 |
| gb18030_chinese_ci | gb18030 | 248 | Yes | Yes | 1 |
| gb18030_bin | gb18030 | 249 | NULL | Yes | 1 |
+--------------------+---------+-----+---------+----------+---------+
11 rows in set