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

सूची में कॉमा से अलग की गई स्ट्रिंग

सीमांकित स्ट्रिंग्स को विभाजित करना Oracle दस्तावेज़ीकरण पृष्ठों का विषय।

एक है:

नमूना डेटा :

CREATE TABLE table_name ( id, list ) AS
SELECT 1, 'a,b,c,d' FROM DUAL UNION ALL -- Multiple items in the list
SELECT 2, 'e'       FROM DUAL UNION ALL -- Single item in the list
SELECT 3, NULL      FROM DUAL UNION ALL -- NULL list
SELECT 4, 'f,,g'    FROM DUAL;          -- NULL item in the list

क्वेरी :

SELECT t.id,
       v.COLUMN_VALUE AS value,
       ROW_NUMBER() OVER ( PARTITION BY id ORDER BY ROWNUM ) AS lvl
FROM   table_name t,
       TABLE(
         CAST(
           MULTISET(
             SELECT REGEXP_SUBSTR( t.list, '([^,]*)(,|$)', 1, LEVEL, NULL, 1 )
             FROM   DUAL
             CONNECT BY LEVEL < REGEXP_COUNT( t.list, '[^,]*(,|$)' )
           )
           AS SYS.ODCIVARCHAR2LIST
         )
       ) v;

आउटपुट :

        ID ITEM           LVL
---------- ------- ----------
         1 a                1 
         1 b                2 
         1 c                3 
         1 d                4 
         2 e                1 
         3 (NULL)           1 
         4 f                1 
         4 (NULL)           2 
         4 g                3 


  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 ORDER BY और ROWNUM का सही उपयोग कैसे करें?

  2. मानों की सूची के विरुद्ध सबस्ट्रिंग क्वेरी करना

  3. Oracle में READONLY कॉलम बनाने का सबसे आसान तरीका क्या है?

  4. ओरेकल सीटीई मर्ज

  5. iSQL प्लस में डेटाबेस विवरण और तालिका नामों का चयन करें