码迷,mamicode.com
首页 > 数据库 > 详细

oracle 中查询结果的排序

时间:2016-06-28 23:43:34      阅读:353      评论:0      收藏:0      [点我收藏+]

标签:

1,使用order by

汉字的编码规则,有提到如下一句:    “一级汉字,是最常用的汉字,按汉语拼音字母顺序排列,共3755个;二级汉字,属于次常用汉字,按偏旁部首的笔划顺序排列,共3008个,order采用的是利用ASCII编码来排序的明所以数字在字母前面,字母在汉字前面,一般汉字都是一级汉字,是按拼音来的,所以误以为order是按拼音的,实际不是,可以对order进行指定。

按照拼音排序

ORDER BY nlssort(NAME, ‘NLS_SORT=SCHINESE_PINYIN_M‘)

按照部首顺序

ORDER BY nlssort(NAME, ‘NLS_SORT=SCHINESE_RADICAL_M‘)

按照笔画进行排序

ORDER BY nlssort(NAME, ‘NLS_SORT=SCHINESE_STROKE_M‘)

 

一般默认为是升序排序,可以对排序进行指定

SELECT ename,hiredate FROM emp ORDER BY hiredate DESC;

DESC为降序,ASC为升序

如果要对多个列进行排序则

SELECT ename,deptno,hiredate FROM emp ORDER BY deptno,hiredate;

先按depptno排序,如果deptno相等,则按hiredate

也可以对组合结果排序,如对某两行的乘积排序

    1. SELECT empno, ename, sal*Months_between(sysdate,hiredate) AS total FROM emp   
    2.   ORDER BY total; 

2在项目进行过程中,遇到了一个生僻字,在组成json数据 时候,采用了冒泡排序,将json数组里面的某一字段进行排序,将这个生僻字用其他常用字的形式进行排序,得到结果具体代码为

 
    public JSONArray bubbleSort(JSONArray args) throws JSONException ,UnsupportedEncodingException {//冒泡排序算法   
        for(int i=0;i<args.length()-1;i++){
               for(int j=i+1;j<args.length();j++){   
                   JSONObject strResult1 = new JSONObject();
                   strResult1 =  args.getJSONObject(i);
                   String s1= strResult1.getString("streetname");
                   JSONObject strResult2 = new JSONObject();
                   strResult2 =  args.getJSONObject(j);
                   String s2= strResult2.getString("streetname");
                   if(s1.equals("垡头"))
                       s1="发头";
                   if(s2.equals("垡头"))
                       s2="发头";
                   String s3,s4;
                    byte[] b1 = null;  
                    byte[] b2 = null;
                    StringBuffer sb1 = new StringBuffer();
                    StringBuffer sb2 = new StringBuffer();
                    b1 = s1.getBytes("gb2312");
                    b2 = s2.getBytes("gb2312");
                    for (int k = 0; k < b1.length; k++) {  
                        sb1.append(Integer.toHexString(b1[k] & 0xFF));  
                    } 
                    for (int k = 0; k < b2.length; k++) {  
                        sb2.append(Integer.toHexString(b2[k] & 0xFF));  
                    }
                    s3= sb1.toString();
                    s4= sb2.toString();
                   if (s3.compareTo(s4)>0){   
 
                       args.put(i, strResult2);
                       args.put(j, strResult1);
                       
                     
                       }   
            }  
       }  
       return args;  
}
    

 

oracle 中查询结果的排序

标签:

原文地址:http://www.cnblogs.com/yuanfuqiang/p/5625197.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!