日期:2014-05-17  浏览次数:20969 次

SQL排序!!!太怪异了!!
module44
module4
module33
module3
module23
module2
module1
可是小弟想以他们降序排列阿!!怎么办啊??
这是module_id字段。大虾们帮帮小弟!!!

------解决方案--------------------
select module_id from table order by module_id desc
不可以吗?
------解决方案--------------------
CREATE TABLE test1 (id NUMBER, module_id VARCHAR2(10))

INSERT INTO test1(id,module_id) VALUES(1, 'module44 ')

INSERT INTO test1(id,module_id) VALUES(2, 'module4 ')

INSERT INTO test1(id,module_id) VALUES(3, 'module33 ')

INSERT INTO test1(id,module_id) VALUES(4, 'module3 ')

INSERT INTO test1(id,module_id) VALUES(5, 'module23 ')

INSERT INTO test1(id,module_id) VALUES(6, 'module2 ')

INSERT INTO test1(id,module_id) VALUES(7, 'module1 ')

SELECT * FROM test1 ORDER BY LPAD(SUBSTR(module_id,7),7, '0 ' ) DESC
------解决方案--------------------

select module_id from table order by to_number(substr(module_id,7)) desc


------解决方案--------------------
看你module_id字段是什么类型的

如果是varchar,直接排序就可以了
select * from table order by module_id desc

我已测试
测试数据如下:
create table test(
A varchar(20),
B varchar(20)
)

insert into test
select 1, '2 ' from dual union
select 2, '3 ' from dual union
select 3, 'module23 ' from dual union
select 4, 'module3 ' from dual union
select 5, 'module232 ' from dual union
select 6, 'module3 ' from dual