PLSQL按数字顺序排序

时间:2017-02-15 14:46:33

标签: plsql

我有一个返回一个列(NUMBER)的查询我想使用ORDER BY,所以结果将按数字顺序排列,例如:1,2,3,4,5 而不是:1,10,12,3,4,5。

我怎样才能做到这一点?

2 个答案:

答案 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.