안녕하세요.
여러방면으로 테스트 또는 실행하다가 도저히 정답을 찾아내지 못하여 질문합니다....
공통코드화 되어있는 코드를 별도의 테이블의 한 컬럼에 11,12 이런식으로 저장을 하였습니다.
이제 이 컬럼들의 명칭을 공통테이블에 저장되어있는 값을 가져와서 코드의 명으로 select 해줘야하는데
REGEXP_SUBSTR (A.CPOS_CODE, '[^' || ',' || ']+', 1) 를 사용하거나 LISTAGG를 사용해도 정답을 얻을 수가 없더군요..
크게 예를 들면
공통 테이블에는
공통코드 | 공통코드명 |
00 | 임원 |
01 | 본부장 |
이런식으로 저장되어있고
저장되어있는 테이블에는 한 컬럼 안에 00,01 으로 콤마로 구분되어 저장되어 있습니다.
콤마로 구분되어있는 컬럼을 임원,본부장 이런식으로 명칭을 조회하고 싶습니다....
WITH code_t AS ( SELECT '00' cd, '임원' nm FROM dual UNION ALL SELECT '01', '본부장' FROM dual UNION ALL SELECT '02', '처장' FROM dual UNION ALL SELECT '03', '부장' FROM dual ) , data_t AS ( SELECT 1 id, '01,02' cd FROM dual UNION ALL SELECT 2, '00,03' FROM dual ) SELECT a.id , a.cd , LISTAGG(b.nm, ',') WITHIN GROUP(ORDER BY b.cd) nm FROM data_t a , code_t b WHERE INSTR(','||a.cd||',', ','||b.cd||',') > 0 GROUP BY a.id, a.cd ;