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

Oracle 12:अल्पविराम से अलग की गई सूची में शामिल हों?

आप companies.legal_contacts . की सूची को विभाजित कर सकते हैं रेगुलर एक्सप्रेशन का उपयोग करते हुए, फिर ईमेल पते प्राप्त करने के लिए संपर्कों के साथ परिणाम सेट में शामिल हों (ceo प्राप्त करने के लिए दो बार जुड़ें mail भी) और फिर listagg . का उपयोग करके ईमेल को फिर से संयोजित करें समारोह:

SELECT co.company_id, p1.email, LISTAGG(p2.email, ', ') WITHIN GROUP (ORDER BY p2.email)
  FROM (
        SELECT DISTINCT company_id, ceo, REGEXP_SUBSTR(legal_contacts, '[^, ]+', 1, LEVEL) AS single_contact   
          FROM COMPANIES
       CONNECT BY REGEXP_SUBSTR(legal_contacts, '[^, ]+', 1, LEVEL) IS NOT NULL) co
  LEFT JOIN CONTACTS p1 ON co.ceo = p1.person_id
  LEFT JOIN CONTACTS p2 ON co.single_contact = p2.person_id
 GROUP BY co.company_id, p1.email;

अगर companies.legal_contacts कई मान हो सकते हैं, प्रदर्शन कारणों से नियमित अभिव्यक्ति का उपयोग थोड़ा बदल जाता है और आपको MULTISET का उपयोग करना चाहिए।



  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 में GUID कैसे स्टोर करना चाहिए?

  5. क्या Oracle का SYS_GUID () UUID RFC 4122 अनुरूप है?