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

किसी विशिष्ट वर्ण को स्ट्रिंग से कैसे निकालें, केवल तभी जब वह स्ट्रिंग में पहला या अंतिम वर्ण हो।

इस तरह के "ट्रिमिंग" कॉमा से निपटने का एक तरीका CASE . का उपयोग करना होगा कथन:

CASE
    WHEN str LIKE ',%,' THEN SUBSTRING(str, 2, LEN(str)-2)
    WHEN str LIKE ',%'  THEN RIGHT(str, LEN(str)-1)
    WHEN str LIKE '%,'  THEN LEFT(str, LEN(str)-1)
    ELSE str
END

यह बहुत ही आत्म-व्याख्यात्मक है:CASE कथन तीन स्थितियों पर विचार करता है -

  • जब स्ट्रिंग str दोनों तरफ अल्पविराम है,
  • जब स्ट्रिंग str अल्पविराम से शुरू होता है, लेकिन एक में समाप्त नहीं होता, और
  • जब स्ट्रिंग str अल्पविराम में समाप्त होता है, लेकिन एक में शुरू नहीं होता है।

पहले मामले में, पहले और आखिरी अक्षर हटा दिए जाते हैं; दूसरे मामले में, सबसे बाएं वर्ण को हटा दिया जाता है; अंतिम स्थिति में, पिछला वर्ण हटा दिया जाता है।

sqlfiddle पर डेमो।



  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 सर्वर में एक स्ट्रिंग में प्रत्येक शब्द के पहले अक्षर को कैपिटलाइज़ करने का सबसे अच्छा तरीका क्या है

  2. पाइथन या आयरनपीथन के साथ mssql तक पहुंचने का सबसे आसान तरीका क्या है?

  3. SQL सर्वर में char, nchar, varchar और nvarchar में क्या अंतर है?

  4. किसी दिए गए संग्रहीत-खरीद को कॉल करने वाले सभी SQL एजेंट जॉब्स को कैसे खोजें

  5. क्या टाइमस्टैम्प कॉलम अद्वितीय है?