अपने ORDER BY
. में स्ट्रिंग फ़ंक्शन करें केवल संख्या को हटाने के लिए। कुछ इस तरह काम करना चाहिए:
SELECT col
FROM table
ORDER BY CAST(CASE WHEN ISNUMERIC(SUBSTRING(col,4,20)) = 1
THEN SUBSTRING(col,4,20)
ELSE LEFT(SUBSTRING(col,4,20),CHARINDEX('.',SUBSTRING(col,4,20),0)-1)
END AS NUMERIC)
यह सबसे पहले IS-
. को हटा देगा और जांचें कि शेष स्ट्रिंग एक संख्या है या नहीं। यदि ऐसा है, तो यह दशमलव अंकों को छोड़ देगा, अन्यथा यह .
और निम्नलिखित अल्फा वर्ण।
यह माना जा रहा है कि संख्यात्मक दशमलव स्थानों के मामले में आपका इच्छित क्रम होगा:
IS-123.A
IS-123.1
IS-123.2
यदि आपको इस बात की परवाह नहीं है कि दशमलव/अवधि के बाद क्या है, तो बस:
ORDER BY CAST(LEFT(SUBSTRING(col,4,20),CHARINDEX('.',SUBSTRING(col,4,20),0)-1) AS NUMERIC)