Search This Blog

Tuesday, March 19, 2019

Comma separated value to ROWS in ORACLE SQL


SELECT t.id,
       v.COLUMN_VALUE AS value,
       ROW_NUMBER() OVER ( PARTITION BY id ORDER BY ROWNUM ) AS lvl
    FROM   prod_resource_mst t,
       TABLE(
         CAST(
           MULTISET(
             SELECT TRIM( REGEXP_SUBSTR( t.line_number, '[^,]+', 1, LEVEL ) )
             FROM   DUAL
             CONNECT BY LEVEL <= REGEXP_COUNT( t.line_number, '[^,]+' )
           )
           AS SYS.ODCIVARCHAR2LIST
         )
       ) v  where id=51

No comments:

Post a Comment