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

Oracle SQL क्वेरी के माध्यम से, पंक्ति में कॉलम के अल्पविराम से अलग किए गए मानों को विभाजित करें

कई विकल्प हैं। देखें Oracle में एक तालिका में अल्पविराम सीमांकित स्ट्रिंग्स को विभाजित करें

REGEXP_SUBSTR का उपयोग करना:

SQL> WITH sample_data AS(
  2  SELECT 10001 ID, 'A,B,C' str FROM dual UNION ALL
  3  SELECT 10002 ID, 'D,E,F' str FROM dual UNION ALL
  4  SELECT 10003 ID, 'C,E,G' str FROM dual
  5  )
  6  -- end of sample_data mimicking real table
  7  SELECT distinct id, trim(regexp_substr(str, '[^,]+', 1, LEVEL)) str
  8  FROM sample_data
  9  CONNECT BY LEVEL <= regexp_count(str, ',')+1
 10  ORDER BY ID
 11  /

        ID STR
---------- -----
     10001 A
     10001 B
     10001 C
     10002 D
     10002 E
     10002 F
     10003 C
     10003 E
     10003 G

9 rows selected.

SQL>

XMLTABLE: . का उपयोग करना

SQL> WITH sample_data AS(
  2  SELECT 10001 ID, 'A,B,C' str FROM dual UNION ALL
  3  SELECT 10002 ID, 'D,E,F' str FROM dual UNION ALL
  4  SELECT 10003 ID, 'C,E,G' str FROM dual
  5  )
  6  -- end of sample_data mimicking real table
  7  SELECT id,
  8        trim(COLUMN_VALUE) str
  9  FROM sample_data,
 10       xmltable(('"'
 11          || REPLACE(str, ',', '","')
 12          || '"'))
 13  /

        ID STR
---------- ---
     10001 A
     10001 B
     10001 C
     10002 D
     10002 E
     10002 F
     10003 C
     10003 E
     10003 G

9 rows selected.


  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 SQL, एकाधिक स्तंभों को संयोजित करें + टेक्स्ट जोड़ें

  2. अमेज़ॅन आरडीएस ओरेकल इंस्टेंस से कनेक्ट करते समय रीड कॉल त्रुटि से गॉट माइनस वन से कैसे संपर्क करें

  3. एक स्ट्रिंग कैसे सम्मिलित करें जिसमें एक &शामिल है

  4. एक लंबी रॉ की लंबाई प्राप्त करें

  5. Oracle इंटरसेक्ट ऑपरेटर समझाया गया