always cracks me up.
please sort like this:
(picture of some data)
without "here are the RULES by which we sort by"
I'm guessing:
parse the string, turning each '.' separated number into a number and order by them.
ops$tkyte@ORA10GR2> select txt,
2 to_number( substr( '.'||txt||'.', instr('.'||txt||'.','.',1,1)+1, instr('.'||txt||'.','.',1,2)-instr('.'||txt||'.','.',1,1)-1 ) ) c1,
3 to_number( substr( '.'||txt||'.', instr('.'||txt||'.','.',1,2)+1, instr('.'||txt||'.','.',1,3)-instr('.'||txt||'.','.',1,2)-1 ) ) c2,
4 to_number( substr( '.'||txt||'.', instr('.'||txt||'.','.',1,3)+1, instr('.'||txt||'.','.',1,4)-instr('.'||txt||'.','.',1,3)-1 ) ) c3,
5 to_number( substr( '.'||txt||'.', instr('.'||txt||'.','.',1,4)+1, instr('.'||txt||'.','.',1,5)-instr('.'||txt||'.','.',1,4)-1 ) ) c4,
6 to_number( substr( '.'||txt||'.', instr('.'||txt||'.','.',1,5)+1, instr('.'||txt||'.','.',1,6)-instr('.'||txt||'.','.',1,5)-1 ) ) c5
7 from prova
8 order by c1, c2, c3, c4, c5
9 /
TXT C1 C2 C3 C4 C5
-------------------- ---------- ---------- ---------- ---------- ----------
1.1.1 1 1 1
2.1.1.3 2 1 1 3
2.1.1 2 1 1
9.1 9 1
12.1.1 12 1 1
(you don't have to select ths to_number()... you can just order by the to_number()....