Oracle 10gでソートの問題が発生しています。 10gに特有のものかどうかは不明です。Oracle 10g SQLソートVARCHAR2
ID NAME
1 A.1
2 A.3
3 A.4
4 A.5
5 A.2
6 A.5.1
7 A.5.2
8 A.5.10
9 A.5.10.1
10 A.5.3
ジェネリックSELECT NAME FROM table_name ORDER BY 1
が生成する実行::私はそれらのセクションがそうのように、9より大きい数字を持っている場合、正しくソートするためにそれをしたいと思い
A.1
A.2
A.3
A.4
A.5
A.5.1
A.5.10
A.5.10.1
A.5.2
A.5.3
:
私は、次の表を持っている
A.1
A.2
A.3
A.4
A.5
A.5.1
A.5.2
A.5.3
A.5.10
A.5.10.1
私にはこれより多くの番号の項目があります私は、order by節でregexp_replace()を使いこなそうとしていましたが、運がなかったのです。どんな助けでも大歓迎です。
これは間違いなく機能します。何が起こっているのか説明できますか?また、それは生成に多くの時間を費やしている膨大なクエリです。これは、With/ReplaceまたはORDER BYの連結のためですか?ありがとうございました。 –
まず、それをxmlにします(実際には必要ありません。substrとinstrを使って行うこともできます - 実際にはこれは実行に費用がかかるかもしれません)。すべてのノード(ドット間の部分)を取り、その長さがゼロになるようにパッドを貼り付けます(5とします)。今すぐソートすることができます –