Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL स्प्लिट के बाद संख्यात्मक स्ट्रिंग्स को क्रमबद्ध करें

अपने 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)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर (T-SQL) में समर्थित समय क्षेत्रों की सूची प्राप्त करें

  2. गतिशील आदेश दिशा

  3. SQL सर्वर में टेबल-वैल्यूड फंक्शन बनाएं

  4. एक कॉलम बदलना:शून्य से शून्य नहीं

  5. 7645 अशक्त या खाली पूर्ण-पाठ विधेय