针对某一字段截取后排序
-
现在oracle数据库中有一张表A中有字段row存储的是字符串,数据类似于row (第1行、第2行、第3行…第15行…第108行),要求同一批的数据,针对row由小到大进行排序。
-
思路:对字段row进行截取后,剩下中间的数字,然后转化为number类型在进行排序。
-
函数:substr(字符串,截取开始位置,截取长度) //返回截取的字符串,0、1都是表示截取的开始位置为第一个字符。
-
to_number()函数可以将char或varchar2类型的string转换为一个number类型的数值;
--length(ROW)-2:截取长度 减去首尾的'第'、'行'。 --substr(ROW,2,(length(ROW)-2)):从第二位开始截取 select to_number(substr(ROW,2,(length(ROW)-2))) as num,message,batch,ROW from A where batch = #{batch,jdbcType=VARCHAR} order by num
日期和字符转换函数用法(to_date,to_char)
select to_date(to_char(sysdate,'yyyy-MM-dd HH24:mi:ss'),'yyyy-MM-dd HH24:mi:ss') from dual;