日期:2014-05-16 浏览次数:20851 次
--表名:tb1 字段:col1 select col1, regexp_substr(col1,'[[:digit:]]+') from tb1 order by regexp_substr(col1,'[[:digit:]]+')
------解决方案--------------------
create table test1(col1 nvarchar2(50));
insert into test1 values('读者文摘第05期');
insert into test1 values('读者文摘第03期');
insert into test1 values('读者文摘第06期');
insert into test1 values('读者文摘第10期');
insert into test1 values('读者文摘第11期');
insert into test1 values('读者文摘第02期');
select col1, regexp_substr(col1,'[[:digit:]]+') c_no
from test1
order by regexp_substr(col1,'[[:digit:]]+')
col1 c_no
---------------------------
1 读者文摘第02期 02
2 读者文摘第03期 03
3 读者文摘第05期 05
4 读者文摘第06期 06
5 读者文摘第10期 10
6 读者文摘第11期 11
------解决方案--------------------
create table test1(col1 nvarchar2(50));
insert into test1 values('读者文摘第5期');
insert into test1 values('读者文摘第3期');
insert into test1 values('读者文摘第6期');
insert into test1 values('读者文摘第10期');
insert into test1 values('读者文摘第11期');
insert into test1 values('读者文摘第2期');
select col1, regexp_substr(col1,'[[:digit:]]+') c_no
from test1
order by to_number(regexp_substr(col1,'[[:digit:]]+'),'99999')
col1 c_no
---------------------------
1 读者文摘第2期 2
2 读者文摘第3期 3
3 读者文摘第5期 5
4 读者文摘第6期 6
5 读者文摘第10期 10
6 读者文摘第11期 11
------解决方案--------------------
实测数据:
CREATE TABLE T159
(
F1 VARCHAR2(20)
);
INSERT INTO T159 VALUES('xxxx周报(第9期)');
INSERT INTO T159 VALUES('xxxx周报(第3期)');
INSERT INTO T159 VALUES('xxxx周报(第2期)');
INSERT INTO T159 VALUES('xxxx周报(第10期)');
INSERT INTO T159 VALUES('xxxx周报(第5期)');
INSERT INTO T159 VALUES('xxxx周报(第7期)');
INSERT INTO T159 VALUES('xxxx周报(第1期)');
INSERT INTO T159 VALUES('xxxx周报(第20期)');