Ini akan melakukannya:
SELECT value
FROM Table1
ORDER BY value REGEXP '^[A-Za-z]+$'
,CAST(value as SIGNED INTEGER)
,CAST(REPLACE(value,'-','')AS SIGNED INTEGER)
,value
4 level the ORDER BY
:
REGEXP
menetapkan setiap garis alfa a 1 dan non-alfa a 0SIGNED INT
Urutkan semua angka berdasarkan bagian sebelum tanda hubung.SIGNED INT
setelah menghapus tanda hubung, urutkan item mana pun dengan nilai yang sama sebelum tanda hubung berdasarkan bagian setelah tanda hubung. Berpotensi bisa menggantikan nomor 2, tetapi tidak ingin memperlakukan 90-1 sama dengan 9-01 jika kasusnya muncul.- Mengurutkan huruf menurut abjad.
Demo:SQL Fiddle