Udělá to:
SELECT value
FROM Table1
ORDER BY value REGEXP '^[A-Za-z]+$'
,CAST(value as SIGNED INTEGER)
,CAST(REPLACE(value,'-','')AS SIGNED INTEGER)
,value
4 úrovně the ORDER BY :
REGEXPpřiřadí libovolné alfa linii 1 a nealfa 0SIGNED INTSeřadí všechna čísla podle části před pomlčkou.SIGNED INTpo odstranění pomlčky seřadí libovolnou z položek se stejnou hodnotou před pomlčkou podle části za pomlčkou. Potenciálně by mohl nahradit číslo 2, ale nechtěl bych s 90-1 zacházet stejně jako s 9-01, pokud by nastal případ.- Seřadí písmena abecedně.
Ukázka:SQL Fiddle