日期:2014-05-16 浏览次数:20736 次
--表名: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期)');