説明
この関数は、明示的または暗黙的なパラメータで指定されたソート規則に基づいて、文字ソートキー値(Sortkey)を返します。
NLSSORT() 関数は、指定されたソート規則に基づいてソートキー値を生成します。ソートキーはバイト文字列であり、指定されたソート規則に従って文字をソートするために使用されます。
ソート規則キーの長さは、パラメータ MAX_STRING_SIZE の影響を受けます。MAX_STRING_SIZE=EXTENDED の場合、戻り値の最大長は 32767 バイトです。ソート規則キーがこの制限を超えると、関数の実行は失敗し、「unable to create the collation key」というエラーが表示されます。
構文
NLSSORT(char [, 'nlsparam' ])
パラメータの説明
パラメータ |
説明 |
|---|---|
| char | このパラメータはリテラルと式(列名を含む)の両方をサポートします。 データ型は CHAR、VARCHAR2、NCHAR、または NVARCHAR2 が可能です。入力データ型が CLOB の場合、暗黙的に変換されます。 |
| nlsparam | ソート規則を指定します。nlsparam の固定形式は NLS_SORT = collation です。collation は言語のソート規則名を指します。OceanBaseデータベースはV4.2バージョン以降、簡体字中国語のソートでGB18030_2022文字セットに基づくソート方式を新たにサポートしています。中国語の文字セットでは、現在以下の3種類の簡体字中国語のソート方式をサポートしています:
nlsparam を省略した場合、この関数は文字セットのデフォルトソート規則を使用します。 |
例
obclient> CREATE TABLE tbl1(PK INT, name VARCHAR(25));
Query OK, 0 rows affected
obclient> INSERT INTO tbl1 VALUES(1,'フォックス'),(2,'警察'),(3,'タクシー'),(4,'リンカーン'),(5,'アリゾナ州'),(6,'ワシントン'),
(7,'デル'),(10,'ロジャースソン');
Query OK, 8 rows affected
Records: 8 Duplicates: 0 Warnings: 0
obclient> SELECT * FROM tbl1;
+------+-----------------+
| PK | NAME |
+------+-----------------+
| 1 | 福克斯 |
| 2 | 警察 |
| 3 | 的士 |
| 4 | 林肯 |
| 5 | 亚利桑那州 |
| 6 | 华盛顿 |
| 7 | 戴尔 |
| 10 | 朗讯 |
+------+-----------------+
8 rows in set
obclient> SELECT * FROM tbl1 ORDER BY NLSSORT(name,'NLS_SORT = SCHINESE_PINYIN2_M');
+------+-----------------+
| PK | NAME |
+------+-----------------+
| 7 | 戴尔 |
| 3 | 的士 |
| 1 | 福克斯 |
| 6 | 华盛顿 |
| 2 | 警察 |
| 10 | 朗讯 |
| 4 | 林肯 |
| 5 | 亚利桑那州 |
+------+-----------------+
8 rows in set