中英文分开排序

http://hi.baidu.com/flowerhacker/blog/item/dfb0961e383662154034174f.html

我同事问了个问题:是将中文和英文分开排序。是先排中文,再排英文的,都按照拼音abc那样排的;字段都是英文打头算作英文,中文打头算作中文。如果是先排英文的话,可以直接用NLSSORT(排序字段,'NLS_SORT = SCHINESE_PINYIN_M')进行排序。如果是先中文再英文的话。我用是先区分中英文,然后再排序:

SELECT *
FROM (SELECT A.*, ROWNUM RN
          FROM (SELECT *
                  FROM T_GYS
                 WHERE UPPER(SUBSTR(MC, 1, 1)) NOT IN
                       ('A',
                        'B',
                        'C',
                        'D',
                        'E',
                        'F',
                        'G',
                        'H',
                        'I',
                        'J',
                        'K',
                        'L',
                        'M',
                        'N',
                        'O',
                        'P',
                        'Q',
                        'R',
                        'S',
                        'T',
                        'U',
                        'V',
                        'W',
                        'X',
                        'Y',
                        'Z')
                 ORDER BY NLSSORT(MC, 'NLS_SORT = SCHINESE_PINYIN_M') ASC) A
        UNION
        SELECT B.*,
               ROWNUM + (SELECT MAX(ROWNUM) RN
                           FROM T_GYS
                          WHERE UPPER(SUBSTR(MC, 1, 1)) NOT IN
                                ('A',
                                 'B',
                                 'C',
                                 'D',
                                 'E',
                                 'F',
                                 'G',
                                 'H',
                                 'I',
                                 'J',
                                 'K',
                                 'L',
                                 'M',
                                 'N',
                                 'O',
                                 'P',
                                 'Q',
                                 'R',
                                 'S',
                                 'T',
                                 'U',
                                 'V',
                                 'W',
                                 'X',
                                 'Y',
                                 'Z')) RN
          FROM (SELECT *
                  FROM T_GYS
                 WHERE UPPER(SUBSTR(MC, 1, 1)) IN
                       ('A',
                        'B',
                        'C',
                        'D',
                        'E',
                        'F',
                        'G',
                        'H',
                        'I',
                        'J',
                        'K',
                        'L',
                        'M',
                        'N',
                        'O',
                        'P',
                        'Q',
                        'R',
                        'S',
                        'T',
                        'U',
                        'V',
                        'W',
                        'X',
                        'Y',
                        'Z')
                 ORDER BY NLSSORT(MC, 'NLS_SORT = SCHINESE_PINYIN_M') ASC) B) T
ORDER BY T.RN ASC;

【转】 oracle中英文分开排序相关推荐

  1. Oracle选择填空题中英文,oracle中英文分开排序

    中英文分开排序 http://hi.baidu.com/flowerhacker/blog/item/dfb0961e383662154034174f.html 我同事问了个问题:是将中文和英文分开排 ...

  2. ORACLE 正负数分开排序 SQL

    ORACLE 正负数分开排序 SQL 表结构 create table TEST_ORDER (t_name VARCHAR2(5),t_value NUMBER(3) ); 表数据 insert i ...

  3. oracle根据null排序,oracle 关于null值排序

    在oracle中根据字段来desc排序的话null值可能会在数据的最前面.然而有时候我们查看数据的时候并不希望能够在前面看到这些null值的排序数据. 因此我查了一下: 1.排序的时候运用nvl(). ...

  4. oracle登录账号和密码,oracle 登录账号与密码oracle按照中文排序

    oracle按照中文排序 在oracle 9i之前,对中文的排序,是默认按2进制编码来进行排序的. 9i时增加了几种新的选择: www.2cto.com 按中文拼音进行排序:SCHINESE_PINY ...

  5. oracle 随机排列,oracle的随机排序

    oracle的随机排序 项目里一个功能要用到随机排序,但是后来又因为数据量大的原因,要分页去查询数据,结果导致查询出来的数据出现重复. 原sql如下select * from ( select row ...

  6. Oracle 分页与排序功能的4个查询语句

    查询内置的表emp 1. 查询前10条记录 SELECT * FROM emp WHERE ROWNUM <= 10; Oracle 分页和排序常用的4条查询语句之二,查询第11到第20条记录 ...

  7. Oracle数据库:排序order by语句,select from where order by的执行先后顺序,各种样例

    Oracle数据库:排序order by语句,select from where order by的执行先后顺序,各种样例 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多 ...

  8. Qt中实现获取中文首字母(GB2312 和 unicode以及调用Unihan实现全汉字拼音转换,支持多音字和生僻字等)和中英文数字排序功能

    Qt5中可以通过qSort接口,结合QLocale类和QCollator类,可以对中文,英文,数字进行排序,但默认排序顺序为数字.英文.中文,但如果需要中英文混合排序的话,需要另外封装方法实现. 这种 ...

  9. Oracle 设置 sort au,oracle数据库拼音排序及NLS_SORT配备[转]

    oracle数据库拼音排序及NLS_SORT配置[转] Oracle9i之前,中文是按照二进制编码进行排序的.在oracle9i中新增了按照拼音.部首.笔画排序功能. 1.设置NLS_SORT参数值 ...

最新文章

  1. KMP算法的详细解释及实现
  2. JavaScript中的数组操作
  3. ECSHOP商品编辑器上传中文名图片产生乱码
  4. hdu1156(简单线段树 模板题)
  5. Python新手常见错误汇总|附代码检查清单
  6. [转]进程,线程和多线程
  7. jvm监控jstatd使用
  8. work2的code和问题
  9. Windows10 virtualbox安装alpine+docker
  10. 「Python」conda与pip升级所有的包
  11. 手机所有录音功能失效_疯狂打CALL!小米手机自带扫描文字功能,一秒识别所有文字信息!...
  12. 使用valgrind检查内存越界
  13. 波士顿房价数据集 Boston house prices dataset
  14. NRF52840 NRF52833 nRF5 SDK 开发
  15. vb webQQ登陆器
  16. html中如何出现三重阴影,探索 CSS3 中的 box-shadow 属性
  17. react如何请求amr文件流接口-优化版
  18. vue使用 svg图片以及修改svg图片颜色
  19. 使用 prometheus 监控 MySQL
  20. python2编码unicode,在不终止Unicode的情况下,在Python 2中编码转义字符的正确方法是什么?...

热门文章

  1. CMakeList笔记
  2. java IDE 工具启动tomcat 时 启动不起来 一直报错的一个原因
  3. 软件测试第三节课总结
  4. oracle 10g expdp导出报错ora-4031的解决方法
  5. 如何检查是否安装了python_检查是否安装了Python Package
  6. js 获取复选框选中的值
  7. Javascript实现树结构
  8. php接口上传头像 app,php调用美图秀秀插件上传头像
  9. php sftp文件上传 文件上传
  10. 从荣耀A2手环看穿戴设备设计