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

Oracle में दिए गए स्ट्रिंग से विशिष्ट तार निकालने के लिए

select 
  SUBSTR(s, 1, INSTR(s, '-') - 1) as a, 
  SUBSTR(s, INSTR(s, '-', -1) + 1) as b 
from 
  (select '[email protected]@BR12340000-990' as s from dual)

SUBSTR(string, start, length) . का उपयोग करना हमारे पास निम्नलिखित तर्क हैं:

ए के लिए:

  • खोज करने के लिए स्ट्रिंग
  • 1 के रूप में start और
  • (index_of_the_first_hyphen -1) length के रूप में . INSTR(string, searchfor) हमें पहले हाइफ़न की अनुक्रमणिका देता है

बी के लिए:

SUBSTR(string, start) . का उपयोग करना हमारे पास तर्क हैं:

  • खोज करने के लिए स्ट्रिंग
  • the (index_of_last_hyphen + 1) - इस बार हम अतिरिक्त INSTR(string, searchfor, startindex) का उपयोग करते हैं तर्क startindex और इसे -1 पर सेट करें; यह इसे स्ट्रिंग के अंत से खोजता है और पीछे की ओर काम करता है, हमें अंतिम हाइफ़न की अनुक्रमणिका देता है

हमें लंबाई तर्क की आवश्यकता नहीं है - लंबाई के बिना SUBSTR शेष स्ट्रिंग को अंत तक लौटाता है

यह ध्यान रखना महत्वपूर्ण है कि INSTR -1 के प्रारंभ सूचकांक के साथ पीछे की ओर खोज करता है लेकिन यह हमेशा अनुक्रमणिका को स्ट्रिंग की शुरुआत से लौटाता है, अंत से नहीं।

INSTR('dddde', 'd', -1)  
       12345            -- returns 4, because d is 4 from the start
       54321            -- it does not return 2, even though d is 2 from the "start" when searching backwards


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle में एक्सेंट और केस असंवेदनशील COLLATE समकक्ष

  2. Oracle संग्रहीत कार्यविधि के भीतर किसी अन्य उपयोगकर्ता की तालिका तक पहुँचना

  3. PLSQL केस जब कंडीशन:

  4. तालिका 2 से अंतिम नई पंक्तियाँ और शेष तालिका 1 से प्राप्त करने के लिए दो तालिकाओं को कैसे मर्ज करें?

  5. Oracle 19c jdk7 के साथ संगतता