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

ओरेकल - regexp_substr शून्य मान वापस करने के लिए

@Gary_W ने इसके बारे में लिखा है स्ट्रिंग को विभाजित करने के लिए उस रेगेक्स पैटर्न का उपयोग करने में समस्या, ठीक है कि यह खाली टैग का इलाज कैसे करता है। (और एक मिशन पर है... )

उस पोस्ट में वैकल्पिक दृष्टिकोण यहां भी काम करता है, पाइप सीमांकक बच निकला:

with t (str) as (
  select '1|CAT|DOG' from dual
  union all select '3|HARRY|GOAT|STACK' from dual
  union all select '6||LION|TIGER' from dual
)
select str, regexp_substr(str, '(.*?)(\||$)', 1, 2, null, 1) from t;

STR                REGEXP_SUBSTR(STR,
------------------ ------------------
1|CAT|DOG          CAT               
3|HARRY|GOAT|STACK HARRY             
6||LION|TIGER                        

इसी तरह तीसरे तत्व के लिए:

select str, regexp_substr(str, '(.*?)(\||$)', 1, 3, null, 1) from t;

STR                REGEXP_SUBSTR(STR,
------------------ ------------------
1|CAT|DOG          DOG               
3|HARRY|GOAT|STACK GOAT              
6||LION|TIGER      LION              

और चौथा:

select str, regexp_substr(str, '(.*?)(\||$)', 1, 4, null, 1) from t;

STR                REGEXP_SUBSTR(STR,
------------------ ------------------
1|CAT|DOG                            
3|HARRY|GOAT|STACK STACK             
6||LION|TIGER      TIGER             


  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. Oracle में JDK संस्करण की जाँच कैसे करें?

  4. jpa . में किसी ऑब्जेक्ट को सहेजने से पहले मैं आईडी कैसे जानूं?

  5. ओरेकल एसक्यूएल - ओरेकल में एकाधिक कॉलम में तिथियों के आधार पर गणना कैसे प्राप्त करें?