0

良い日、多分誰かが私を助けることができます、私はoracle sqlでn選択出力を取得したいのですが、私がそれで注文したときは正しくありません。

code_order
1.
2.
2.1
3.
4.2
10.1
10.0
21.
21.1
23.
31.

数値で並べ替える必要があり、すべての値に終止符があります.

何か案は??

ありがとうございますが、C、Bなどのように、一部の値には数値以外の値を含めることができるようです。

                    1. 7C。40. 50.51.6。
表の概要:

code_orderはvarchar2です

4

2 に答える 2

0
    with
    val as
    (
      SELECT '1.' as c FROM dual
      union all
      SELECT '2.' as c FROM dual
      union all
      SELECT '3.' as c FROM dual
      union all
      SELECT '2.1' as c FROM dual
      union all
      SELECT '4.2' as c FROM dual
      union all
      SELECT '10.1' as c FROM dual
      union all
      SELECT '21.' as c FROM dual
      union all
      SELECT '10.0' as c FROM dual
      union all
      SELECT '21.1' as c FROM dual
      union all
      SELECT '23.' as c FROM dual
      union all
      SELECT '31.' as c FROM dual
    )
SELECT c FROM val
order by to_number(regexp_replace(c, '^(\d+)\..*$', '\1'))
    ;
于 2012-08-20T08:39:49.430 に答える
0

使用するorder by to_number(code_order)

于 2012-08-20T07:29:17.320 に答える