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

SQL सर्वर में सबस्ट्रिंग प्राप्त करें

आप reverse . का उपयोग कर सकते हैं substring . के साथ और charindex आप जो खोज रहे हैं उसे पाने के लिए:

select
    reverse(substring(reverse(filename), 1, 
        charindex('.', reverse(filename))-1)) as FileExt
from
    mytable

यह बरकरार है, भले ही आपके पास एक से अधिक . हों आपकी फ़ाइल में (उदा.-hello.world.exe exe लौटाएगा )।

तो मैं इसके साथ थोड़ा सा खेल रहा था, और यह एक और तरीका है (reverse पर केवल एक कॉल ):

select 
    SUBSTRING(filename, 
        LEN(filename)-(CHARINDEX('.', reverse(filename))-2), 8000) as FileExt
from
    mytable

यह पिछली विधि के लिए 25 सेकंड बनाम 29 सेकंड में 10,000,000 पंक्तियों की गणना करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. फिक्स:"बैकअप लॉग नहीं किया जा सकता क्योंकि कोई मौजूदा डेटाबेस बैकअप नहीं है।" एसक्यूएल सर्वर/एसक्यूएल एज में

  2. SQL सर्वर (T-SQL) में सभी भाषाओं की सूची कैसे प्राप्त करें

  3. पेश है नई सुविधा:ऑलवेज ऑन अवेलेबिलिटी ग्रुप

  4. क्या मुझे सी # एप्लिकेशन में SQL सर्वर डेटाबेस की सभी तालिकाओं का नाम मिल सकता है?

  5. विजुअल स्टूडियो 2017 इंस्टालर प्रोजेक्ट के साथ SQL सर्वर नामित उदाहरण