`
wanjianfei
  • 浏览: 321092 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle汉字排序nls_sort

阅读更多
alter session set nls_sort='schinese_pinyin_m';


select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');


Oracle9i之前,中文是按照二进制编码进行排序的。

在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值

SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序

SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序

SCHINESE_PINYIN_M 按照拼音排序,系统的默认排序方式为拼音排序

举例如下:

表名为 dept ,其中name字段是中文,下面分别实现按照单位名称的笔划、部首和拼音排序。

1: //按照笔划排序

2:
select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');


3: //按照部首排序

4:
select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');


5: //按照拼音排序,此为系统的默认排序方式

6:
select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');
注意,该SQL指令并非标准指令,在SQLServer下面的实现方式并不相同。

create or replace procedure P1 is

V1 varchar2(100);

begin

  execute immediate 'alter SESSION set NLS_SORT = SCHINESE_PINYIN_M';

  select 地区 into V1

  from (select 地区  from RPT_1  where 年度 = '2000'  order by 地区 desc)

  where ROWNUM = 1;

end P1;
分享到:
评论

相关推荐

    oracle__汉字排序

    在Oracle中,可以通过设置`NLS_SORT`参数来控制汉字的排序规则。该参数支持三种主要的汉字排序方式:拼音排序、笔画排序和部首排序。 1. **拼音排序**:通过设置`NLS_SORT=SCHINESE_PINYIN_M`来进行拼音排序。 - ...

    oracle排序方法拼音,部首,笔画

    Oracle9i及其后续版本提供了多种预定义的排序规则,其中包括针对中文排序的特殊规则。“NLS_SORT”参数用于控制查询结果的排序方式。在中文环境下,Oracle提供了三种主要的排序方式: 1. **按拼音排序**(`SCHINESE...

    oracle-sort-order-by.rar_oracle_sort - order

    如果未指定排序规则,Oracle将使用默认的NLS_SORT设置进行排序。 7. **动态排序** 在开发过程中,可能需要根据用户的需求动态调整排序规则。这可以通过在SQL查询中使用动态SQL或者在PL/SQL存储过程内调整NLS_...

    oracle数据库中汉字排序方法

    - **应用场景**:适用于需要按照传统中文排序规则(如字典或词典)进行排序的情况。 2. **SCHINESE_STROKE_M**:按照汉字笔画数排序。 - **特点**:直接根据每个汉字的总笔画数进行排序。 - **应用场景**:适用...

    对Oracle 排序中的几种常用排序的介绍

    1. **按拼音排序**:Oracle支持按照汉字的拼音进行排序,这在处理中文数据时非常有用。可以使用`NLSSORT`函数配合`NLS_SORT`参数来实现。例如,以下语句会按照汉语拼音对`danwei`字段进行升序排序: ```sql select...

    oracle数据库汉字首字排序

    - `sort_rule`:指定排序规则的参数,如`'NLS_SORT=SCHINESE_PINYIN_M'`表示按照简体中文的拼音顺序进行排序,并且区分大小写(M表示区分大小写)。 **示例代码**: ```sql SELECT DEPTID, DEPTNAME FROM TDEPT ...

    oracle指定排序的方法详解

    具体到中文排序,可以通过设置NLS_SORT参数来实现。NLS_SORT参数支持的几个重要值包括SCHINESE_PINYIN_M、SCHINESE_RADICAL_M和SCHINESE_STROKE_M。 1. SCHINESE_PINYIN_M:这个参数值用于根据中文拼音来进行排序。...

    Oracle 中文字段进行排序的sql语句

    在Oracle中,如果你希望按照中文字符的笔画数进行排序,可以使用`NLSSORT`函数配合`NLS_SORT`参数。`NLSSORT`函数允许我们指定一个排序规则,这里我们设置`NLS_SORT=SCHINESE_STROKE_M`,其中`SCHINESE_STROKE_M`是...

    Oracle客户端PL/SQL 中文乱码解决

    可以通过`ALTER SESSION SET NLS_SORT=BINARY_CI`和`ALTER SESSION SET NLS_COMP=LINGUISTIC`来调整排序规则,使比较时不考虑字符集差异。 通过以上步骤,大部分情况下可以解决Oracle客户端PL/SQL的中文乱码问题。...

    ORACLE常用函数总结

    支持中文排序方式,如部首、笔画和拼音。 - 示例:`SELECT NLS_INITCAP('ab cde') "test", NLS_INITCAP('a b c d e', 'nls_sort= SCHINESE_PINYIN_M') "test1" FROM dual;` 11. NLS_LOWER(chr, ['nls_param'])函数...

    oracle汉字转拼音函数整理大全

    ### Oracle汉字转拼音函数知识点详解 #### 一、概述 在Oracle数据库中,有时需要将汉字转换成拼音,尤其是在处理中文数据时。本篇文档详细介绍了两种用于转换汉字到拼音的自定义函数:`fn_getpyKGJG` 和 `fn_...

    oracl几个函数

    在Oracle 9i及之后的版本中,新增了基于拼音、部首和笔画的排序功能,通过设置`NLS_SORT`参数来实现。 - `SCHINESE_RADICAL_M`:按照部首(第一顺序)、笔划(第二顺序)进行排序。 - `SCHINESE_STROKE_M`:按照...

    oracle字符函数.pdf

    例如,`NLS_LOWER('ABC')`返回'abc',而`NLS_LOWER('ABC', 'nls_sort=CHINESE_PINYIN_M')`可能会基于拼音将中文字符转换为小写。 12. NLSSORT(col, [nls_param])函数:此函数用于根据指定的NLS参数对字符串col进行...

    Oracle内置SQL函数-分类整理大全

    例如,NLS_INITCAP('luo jia you', 'NLS_SORT=Chinese')将根据中文排序规则调整大小写。 8. REPLACE函数:REPLACE(string, search_str, replace_str)在string中找到所有的search_str子串,并用replace_str替换。...

    oracle姓名中文转全拼函数

    在这个案例中,`nls_sort=schinese_pinyin_m`排序规则被用来获取每个汉字的拼音首字母。`fn_nlssort`是一个辅助函数,其目的是对输入的汉字字符串应用上述的排序规则。 函数通过循环遍历输入的字符串,每次处理一个...

    EasyUI Datagrid 中文排序的问题

    ### EasyUI Datagrid 中文排序解决方案 #### 一、前言 在开发Web应用程序时,经常需要处理中文数据的排序问题。特别是在使用如EasyUI Datagrid这样的前端组件时,中文排序成为了开发者面临的一个常见挑战。本文将...

    Oracle数据库10g-支持全球化特性的平台-Powe.pptx

    字符集扫描程序和语言索引则优化了对中文数据的处理,包括简体和繁体中文的转换,以及多种中文排序方式,如笔画、拼音、部首和二进制排序。 Oracle 10g的全球化特性还包括不区分大小写的查询和排序功能。这使得用户...

    Oracle汉字拼音首字母函数

    ### Oracle汉字拼音首字母函数详解 #### 一、概述 在数据库处理中文数据时,有时候我们需要根据汉字转换成对应的拼音首字母来进行检索或排序。Oracle提供了多种方式来处理字符串,但针对汉字转拼音首字母的功能并...

Global site tag (gtag.js) - Google Analytics