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

WBOY
发布: 2016-06-07 17:03:19
原创
890 人浏览过

对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

    相关标签:
    来源:php.cn
    本站声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    最新问题
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!