1.正常情况下我们排序都会按照某一列直接order by xxx,我的需求是按照某一列的部分进行排序,正常排序如下
2.如图所示我查出来的字段为string型且固定为6位,我想按照这六位的前两位和后三位进行升序排列,即忽略第三位的存在,目前查出来的是按照整体排的序,修改如下:
使用substr函数截取字符中的所需位数进行排序即可,如果排序的条件是多列一直往后追加即可,会按照在上一个条件的前提下对下一个条件排序
substr函数说明,substr(string string1,int a,int b)
第一个参数为要截取的的字符串,第二个参数为开始位置,第三个参数为截取后的长度
若第一个参数为负数则会从有向左截取,0或1表示自左向右第一位开始截取,大于1从指定为置开始截取,如下:
(1)select substr('1234567',0,3) value from dual;//返回结果 123
(2)select substr('1234567',1,3) value from dual;//返回结果 123
(3)select substr('1234567',2,3) value from dual;//返回结果