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
也可以对组合结果排序,如对某两行的乘积排序
- SELECT empno, ename, sal*Months_between(sysdate,hiredate) AS total FROM emp
- 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; }
时间: 2024-12-21 03:33:14