説明
この関数は、明示的または暗黙的なパラメータで指定されたソートルールに基づいて、文字のソートキー値(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,'Fox'),(2,'Police'),(3,'Taxi'),(4,'Lincoln'),(5,'Arizona'),(6,'Washington'),
(7,'Dell'),(10,'Lucent');
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_PINYIN_M');
+------+-----------------+
| PK | NAME |
+------+-----------------+
| 7 | 戴尔 |
| 3 | 的士 |
| 1 | 福克斯 |
| 6 | 华盛顿 |
| 2 | 警察 |
| 10 | 朗讯 |
| 4 | 林肯 |
| 5 | 亚利桑那州 |
+------+-----------------+
8 rows in set