首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

请问个sql,排序的有关问题

2012-04-01 
请教个sql,排序的问题数据库需要按照标题的时间,或者期数来排序比如:“读者文摘第1期”、“读者文摘第2期”、“读

请教个sql,排序的问题
数据库需要按照标题的时间,或者期数来排序比如:“读者文摘第1期”、“读者文摘第2期”、“读者文摘第3期”,可以不可以直接根据标题来排序,让她做到按期数的倒序排序?
注:标题格式是定死的。aa第x期。

ps:直接按照标题升序或者倒序会出现第1期和第10期在一起,排在第二期的后面。

[解决办法]
select * from tb order by to_number(replace(substr(标题 , instr(标题,'第') + 1 , len(标题)) , '期','')) desc
[解决办法]

SQL code
--表名:tb1   字段:col1select col1, regexp_substr(col1,'[[:digit:]]+')from tb1   order by regexp_substr(col1,'[[:digit:]]+')
[解决办法]
SQL code
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_nofrom test1order by regexp_substr(col1,'[[:digit:]]+')          col1         c_no---------------------------1    读者文摘第02期    022    读者文摘第03期    033    读者文摘第05期    054    读者文摘第06期    065    读者文摘第10期    106    读者文摘第11期    11
[解决办法]
SQL code
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_nofrom test1order by to_number(regexp_substr(col1,'[[:digit:]]+'),'99999')          col1         c_no---------------------------1    读者文摘第2期     22    读者文摘第3期     33    读者文摘第5期     54    读者文摘第6期     65    读者文摘第10期    106    读者文摘第11期    11
[解决办法]
实测数据:
SQL code
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期)'); 

热点排行