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

Oracle SQL को nth तत्व regexp मिल रहा है

यदि आपके सीमित मान हमेशा अल्पविराम के बीच अल्फ़ान्यूमेरिक होते हैं तो आप कोशिश कर सकते हैं:

SELECT REGEXP_SUBSTR( <delimied_string>, '[[:alnum:]]{0,},', 1, 7 )
  FROM dual;

सातवां मान प्राप्त करने के लिए (अनुगामी अल्पविराम सहित)। यदि यह खाली है तो आपको केवल अनुगामी अल्पविराम मिलता है (जिसे आप आसानी से हटा सकते हैं)।

जाहिर है, यदि आप सातवें के अलावा कोई अन्य मान चाहते हैं तो चौथे पैरामीटर मान को आप जो भी nth घटना चाहते हैं उसे बदलें उदा।

SELECT REGEXP_SUBSTR( <delimied_string>, '[[:alnum:]]{0,},', 1, <nth occurance> )
  FROM dual;

संपादित करें:जैसा कि मुझे रेगेक्स पसंद है, यहां एक समाधान है जो पिछली अल्पविराम को भी हटा देता है

SELECT REPLACE(
          REGEXP_SUBSTR(<delimied_string>, '[[:alnum:]]{0,},', 1, <nth>), 
          ','
       )
  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. धाराप्रवाह NHibernate 3 और Oracle.DataAccess

  4. विशेष वर्ण लोड करने के लिए nzload का उपयोग करना

  5. Windows प्रमाणीकरण के साथ Oracle कनेक्शन स्ट्रिंग