您的位置:首页 > 数据库 > Oracle

oracle 字母数字混合排序

2015-10-23 15:49 387 查看
待排序数据:是一个名字为v的视图



按字母、数字分割查询:



SQL如下:

select data,
replace(data,replace(translate(data,'0123456789','##########'),'#',''),'') deptno,
replace(translate(data,'0123456789','##########'),'#','') ename
from v
stranslate函数用法可参考点击打开链接

不过我这样也是行的:

select data,
replace(data,replace(translate(data,'0123456789','#'),'#',''),'') deptno,
replace(translate(data,'0123456789','#'),'#','') ename
from v


既然能分割出来,那排序不就好做了吗。

按deptno排序:



select data from v order by replace(data,replace(translate(data,'0123456789','#'),'#',''),'')
按ename排序:



select data from v order by replace(translate(data,'0123456789','#'),'#','')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle sql 字母 数字 排序