You are on page 1of 1

Sorting -- sort a string like a number

I need to sort values to. 3 4 5 6 50A 50 78 124 How to achieve this?

This small variation on one of the methods in the other thread mentioned might be what you want: WITH test AS ( SELECT '3' ver FROM DUAL UNION SELECT '4' FROM DUAL UNION SELECT '5' FROM DUAL UNION SELECT '6' FROM DUAL UNION SELECT '50A' FROM DUAL UNION SELECT '50' FROM DUAL UNION SELECT '78' FROM DUAL UNION SELECT '124' FROM DUAL UNION SELECT '50A9ZZZZ' FROM DUAL UNION SELECT '50A10AAA' FROM DUAL ) SELECT * FROM test ORDER BY RegExp_Replace (RegExp_Replace (ver, '(\d+)', '0000000\1.'), '0+(........)\.', '\1'); VER -------3 4 5 6 50 50A 50A9ZZZZ 50A10AAA 78 124 10 rows selected.

You might also like