Home > Database > Mysql Tutorial > Oracle中文、数字混杂字段的排序

Oracle中文、数字混杂字段的排序

WBOY
Release: 2016-06-07 17:03:19
Original
945 people have browsed it

对Oracle中中文、数字混杂形式的字段进行排序的方法: 例如: order by NLSSORT(字段名,

对Oracle中中文、数字混杂形式的字段进行排序的方法:

例如:

  •  
  • NLSSORT() 函数:

    如果数据库字符集选用的是ZH16GBK,那么使用order by默认是按照汉字的“二进制编码”顺序进行排序的。

    可以使用NLSSORT()函数可以改变Oralce 对汉字的排序规则,排序规则如下(前三条对简体中文进行排序,后两条对繁体中文进行排序):

    1. SCHINESE_RADICAL_M

        简体中文按照第一顺序是“部首”、第二顺序是“笔画数”进行排序。

    2. SCHINESE_STROKE_M

        简体中文按照第一顺序“笔画数”、是第二顺序是“部首”进行排序。

    3. SCHINESE_PINYIN_M

        简体中文按照拼音进行排序。上例中即对简体汉字按照拼音进行排序。

    4. TCHINESE_RADICAL_M

        繁体中文按照第一顺序是“部首”、第二顺序是“笔画数”进行排序。

    5. TCHINESE_STROKE_M

        繁体中文按照第一顺序是“笔画数”、第二顺序是“部首”进行排序。 

    TRANSLATE() 函数:

    语法:TRANSLATE(char, from, to)

    用法:将char中出现在from中的每个字符替换为to中的相应字符,若from比to字符串长,那么在from中比to中多出的字符将会被删除。三个参数中有一个是空,返回值也将是空值。

    该函数可用于剔除字段中的汉字,,例:

    分析:该语句要将 char--'例1213' 中出现在 from--'0123456789例1213' 中的字符替换为 to--'0123456789' 中的字符,根据 from、to 的对应关系,将 char 中的 0替换成0、1替换成1、...9替换成9,即 char 中的数字不变,又 from 比 to 长,则 from 中比 to 中多出的字符将被删除,即删除 char 中的汉字。

    linux

    Related labels:
    source:php.cn
    Statement of this Website
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
    Popular Tutorials
    More>
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template