3
排序的字母数字数据我有一个像字母数字数据:在甲骨文
1 1a 1b 2 2b 10 10a
如果我整理这些数据,输出将是这样的:
1 1a 10 10a 2 2b
但我想作为输出:
1 1a 2 2b 10 10a
如何使用Oracle命令获取此输出?
排序的字母数字数据我有一个像字母数字数据:在甲骨文
1 1a 1b 2 2b 10 10a
如果我整理这些数据,输出将是这样的:
1 1a 10 10a 2 2b
但我想作为输出:
1 1a 2 2b 10 10a
如何使用Oracle命令获取此输出?
所以,据我所知,你想按数据的数字部分排序。为了这个目的,你可以使用正则表达式(提取数字部分)如下:
SQL> select str from
2 (
3 select '1' str from dual union all
4 select '1a' from dual union all
5 select '1b' from dual union all
6 select '2' from dual union all
7 select '2b' from dual union all
8 select '10' from dual union all
9 select '10a' from dual
10 ) t
11 order by to_number(regexp_substr(str, '^[[:digit:]]*')), str
12/
STR
---
1
1a
1b
2
2b
10
10a
您也可以通过子句中为了分离数字和字母排列顺序做。检查下面的例子:
SELECT tt.qdef_grid
FROM qgdm_qdef tt
ORDER BY to_number(substr(tt.qdef_grid,2,2)), substr(tt.qdef_grid,1,1);
非常感谢你............它的工作原理 – Nirdesh 2012-07-13 11:54:05