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

एक वर्चर कॉलम को SQL में एकाधिक मानों के रूप में कैसे विभाजित करें?

सीमांकित सूची में उपयोग किए जा रहे सीमांकक में मान लपेटें और फिर जांचें कि क्या यह सीमांकित सूची की उप-स्ट्रिंग है (इसके चारों ओर लिपटे सीमांकक के साथ):

SELECT r.Value
FROM   AD_Ref_List r
       INNER JOIN xx_insert x
       ON ( ',' || x.XX_DocAction_Next || ',' LIKE '%,' || r.value || ',%' )
WHERE  r.AD_Reference_ID = 1000448
AND    x.xx_insert_id    = 1000283;
<ब्लॉकक्वॉट>

मुझे लॉजिक को व्हेयरक्लॉज में रखना चाहिए

सच में, नहीं। उपरोक्त क्वेरी अधिक कुशल होगी।

लेकिन अगर आपको करना है तो:

SELECT Value
FROM   AD_Ref_List
WHERE  AD_Reference_ID = 1000448
AND    value IN (
  SELECT REGEXP_SUBSTR( XX_DocAction_Next, '[^,]+', 1, LEVEL )
  FROM   xx_insert
  WHERE  xx_insert_id    = 1000283
  CONNECT BY LEVEL <= REGEXP_COUNT( XX_DocAction_Next, '[^,]+' )
);


  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. Oracle MD5 हैश फ़ंक्शन को कैसे कॉल करें?

  3. Oracle में किसी अन्य के साथ संग्रहीत कार्यविधि को कॉल करें

  4. लूप रिवर्स उदाहरण के लिए Oracle

  5. ऑर्डर बाय क्लॉज के साथ MySQL में रैंक फ़ंक्शन