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

स्पेस डिलीमीटर के साथ किसी भी सामान्य शब्द या वाक्य में nth स्ट्रिंग कैसे प्राप्त करें

instr का उपयोग करके

select substr(help, 1, instr(help,' ') - 1)
  from ( select 'hello my name is...' as help
           from dual )

instr(help,' ') आपके द्वारा खोजी जा रही स्ट्रिंग सहित, पहले तर्क में दूसरे तर्क की पहली घटना की स्थितिगत अनुक्रमणिका देता है। यानी ' ' . की पहली घटना स्ट्रिंग में 'hello my name is...' प्लस अंतरिक्ष।

substr(help, 1, instr(help,' ') - 1) फिर इनपुट स्ट्रिंग को पहले अक्षर से instr(... . में दर्शाए गए इंडेक्स में ले जाता है . मैं फिर एक को हटा देता हूं ताकि जगह शामिल न हो..

नौवीं घटना के लिए बस इसे थोड़ा बदल दें:

instr(help,' ',1,n) नवां है ' ' . की घटना पहले चरित्र से। फिर आपको अगले इंडेक्स instr(help,' ',1,n + 1) का पोजिशनल इंडेक्स ढूंढना होगा। , अंत में उनके बीच के अंतर पर काम करें ताकि आप जान सकें कि आपके substr(... में कितनी दूर जाना है . जैसा कि आप nवें . की तलाश कर रहे हैं , जब n क्या यह 1 टूट जाता है और आपको इससे निपटना होगा, जैसे:

select substr( help
             , decode( n
                     , 1, 1
                     , instr(help, ' ', 1, n - 1) + 1
                       )
             , decode( &1
                     , 1, instr(help, ' ', 1, n ) - 1
                     , instr(help, ' ', 1, n) - instr(help, ' ', 1, n - 1) - 1
                       )
               )
  from ( select 'hello my name is...' as help
           from dual )

यह n . पर भी टूट जाएगा . जैसा कि आप देख सकते हैं कि यह हास्यास्पद हो रहा है इसलिए आप रेगुलर एक्सप्रेशन

select regexp_substr(help, '[^[:space:]]+', 1, n )
  from ( select 'hello my name is...' as help
           from dual )


  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. दिनांक और समय का अनुक्रम उत्पन्न करें

  3. टेबल पर भौतिकीकृत दृश्य लॉग से फ़िल्टर कॉलम का उपयोग नहीं कर सकता

  4. Oracle SQL WHERE क्लॉज में (+) चिन्ह का क्या अर्थ है?

  5. कैसे जांचें कि अद्यतन ट्रिगर से पहले पीएल/एसक्यूएल में कॉलम मान स्पष्ट रूप से निर्दिष्ट किया गया था या नहीं?