데이터는 8자리로 고정이 되어있구요 아래처럼 각 자리마다 N, Y 값이 올 수 있는데
ex) NNNNNNNN NNYNNYNN YYYYYYYY
Y가 들어가있는 자리를 찾아서 자릴수+호 로 변환해서 만들고 싶은데요 Y가 n개일경우 쉼표(.)를 구분자로 뒤에 이어서
ex)
NNYNNNYN -> 3호, 7호 YNYNYNNN -> 1호, 3호, 5호
regexp_replace 등을 이용해서 해보려는데 꼼수가 부족한지 잘 안돼네요...
INSTR ( col, 'Y', 1, 1 )
......
WITH T AS ( SELECT 'NNNNNNNN' AS A FROM DUAL UNION ALL SELECT 'NNYNNYNN' AS A FROM DUAL UNION ALL SELECT 'YYYYYYYY' AS A FROM DUAL ) SELECT A, DECODE(SUBSTR(STR, 1, 1),',',SUBSTR(STR, 3), STR) AS STRS FROM ( SELECT A, DECODE(SUBSTR(A, 1, 1), 'Y', '1호') || DECODE(SUBSTR(A, 2, 1), 'Y', ', 2호') || DECODE(SUBSTR(A, 3, 1), 'Y', ', 3호') || DECODE(SUBSTR(A, 4, 1), 'Y', ', 4호') || DECODE(SUBSTR(A, 5, 1), 'Y', ', 5호') || DECODE(SUBSTR(A, 6, 1), 'Y', ', 6호') || DECODE(SUBSTR(A, 7, 1), 'Y', ', 7호') || DECODE(SUBSTR(A, 8, 1), 'Y', ', 8호') STR FROM T ) ;
자릿수가 고정되어있어서 위에처럼....