---
title: "NLSSORT - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: NLSSORT 描述 该函数根据显式或隐式参数指定的排序规则，返回字符排序键值（Sortkey）。 NLSSORT() 函数使用指定的排序规则生成排序键值，排序键是一个字节字符串，用于根据指定的排序规则对字符进行排序。 排序规则键的长度受参数 MAX_STRING_SIZE 的影响。如果 MAX_STRING_SIZ…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.5.0

# NLSSORT

更新时间：2026-04-06 09:48:23

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/300.common-tenant-of-oracle-mode/500.functions-of-oracle-mode/200.single-row-functions-of-oracle-mode/200.string-functions-that-return-a-string-of-oracle-mode/800.nlssort-of-oracle-mode.md)  

## 描述

该函数根据显式或隐式参数指定的排序规则，返回字符排序键值（Sortkey）。

`NLSSORT()` 函数使用指定的排序规则生成排序键值，排序键是一个字节字符串，用于根据指定的排序规则对字符进行排序。

排序规则键的长度受参数 `MAX_STRING_SIZE` 的影响。如果 `MAX_STRING_SIZE=EXTENDED`，则返回值的最大长度为 32767 字节。如果排序规则键超出此限制，则函数将执行失败，并出现无法创建排序规则键的报错"unable to create the collation key"。

## 语法

```sql
NLSSORT(char [, 'nlsparam' ])

```

## 参数解释

| 参数 | 说明 |
| --- | --- |
| char | 该参数支持字面量，也支持表达式（包括列名）。 数据类型可以为 `CHAR`、`VARCHAR2`、`NCHAR` 或者 `NVARCHAR2`。如果输入的数据类型为`CLOB`，会做隐式转换。 |
| nlsparam | 指定排序规则。 `nlsparam` 的固定格式为 `NLS_SORT = collation`。`collation` 是指语言排序规则名称。 OceanBase 数据库于 V4.2 版本及以后，简体中文排序新支持基于 GB18030_2022 字符集的排序方式。对于中文字符集，目前支持如下 3 种简体中文的排序方式：   - `SCHINESE_PINYIN2_M`：按拼音排序。 - `SCHINESE_STROKE2_M`：按笔画排序。 - `SCHINESE_RADICAL2_M`：按部首排序。   对于 Unicode，目前支持如下 3 种简体中文的排序方式：   - `UCA0900_SCHINESE_PINYIN`: 按拼音排序。 - `UCA0900_SCHINESE_STROKE`：按笔画排序 - `UCA0900_SCHINESE_RADICAL`：先按部首排序，再按笔画排序。   如果省略 `nlsparam`，则此函数使用字符集默认排序规则。 |

## 示例

```sql
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

```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
