WITH T1 AS ( SELECT 1 GB , '한국,중국,한국,일본,한국' AREA FROM DUAL UNION ALL SELECT 2 , '미국,일본,한국,일본' FROM DUAL ), T2 AS ( SELECT LEVEL LV FROM DUAL CONNECT BY LEVEL <= 10 ) SELECT GB , LISTAGG(AREA,',') WITHIN GROUP (ORDER BY AREA) FROM (SELECT DISTINCT GB , REGEXP_SUBSTR(AREA,'[^,]+' , 1 , LV ) AREA FROM T1 A ,T2 B WHERE B.LV <= REGEXP_COUNT(AREA,',') + 1 ) GROUP BY GB