यह यह करेगा:
SELECT value
FROM Table1
ORDER BY value REGEXP '^[A-Za-z]+$'
,CAST(value as SIGNED INTEGER)
,CAST(REPLACE(value,'-','')AS SIGNED INTEGER)
,value
the ORDER BY
. के 4 स्तर :
REGEXP
किसी भी अल्फ़ा लाइन को 1 और गैर-अल्फ़ाज़ को 0
. असाइन करता है SIGNED INT
सभी नंबरों को डैश से पहले वाले हिस्से के अनुसार क्रमित करता है।SIGNED INT
डैश को हटाने के बाद डैश से पहले समान मान वाले किसी भी आइटम को डैश के बाद वाले हिस्से के अनुसार क्रमबद्ध करें। संभावित रूप से नंबर 2 की जगह ले सकता है, लेकिन 90-1 के साथ वैसा ही व्यवहार नहीं करना चाहेगा जैसा कि 9-01 के मामले में होता है।- अक्षरों को वर्णानुक्रम में क्रमबद्ध करता है।
डेमो:SQL Fiddle