我有一个返回一个列(NUMBER)的查询我想使用ORDER BY,所以结果将按数字顺序排列,例如:1,2,3,4,5 而不是:1,10,12,3,4,5。
我怎样才能做到这一点?
答案 0 :(得分:1)
如果列具有数字类型,则所需的是默认行为。 如果它有另一种类型但是要将内容解析为整数,请重新考虑您的设计。然后再重新考虑一下。然后第三次重新考虑它。如果你真的想要一个以数字排序的文本列,你可以
ORDER BY CAST(column AS NUMBER)
但要注意它会很慢,如果列值不解析为数字,您可能会收到错误...
答案 1 :(得分:0)
如果我正确地理解了下面的内容,我尝试使用我的机器Oracle 11gr2及其工作。如果它不适用于您的情况,那么问题就在其他地方。
SQL> create table tbb(a number);
/
SQL> select * from tbb;
A
----------
1
2
4
6
3
7
6 rows selected.
SQL> select * from tbb order by a;
A
----------
1
2
3
4
6
7
6 rows selected.
SQL> drop table tbb;
Table dropped.