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
:
REGEXP
přiřadí libovolné alfa linii 1 a nealfa 0SIGNED INT
Seřadí všechna čísla podle části před pomlčkou.SIGNED INT
po 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