질문의 내용이 모호한 부분이 많아 판단하기 어렵지만.
잘못 작성한 느낌이 들긴 합니다.
각 테이블의 코드와 코드명에 대한 예시자료를 표형태로 보여주세요.
table a 는 city_cd 컬럼에 seoul , busan .. 등등 코드값으로 된 데이터 들이 있습니다
city_cd 에는 하나의 도시만 있는게 아니라 여러 도시들이 있습니
table a
| seq | city_cd |
| 1 | seoul,busan |
| 2 | busan |
| 3 |
busan, ulsan |
table b
| city_cd | city_nm |
| busan | 부산 |
| seoul | 서울 |
구하려는 값은 busan,seoul 으로 된 데이터 들의 city_nm 을 가져오려고 합니다
아뇨 공백은 없습니다.
중간에 공백이 있는 것도 있고 없는 것도 있네요? 맞나요?
WITH table_a AS
(
SELECT 1 seq, 'seoul,busan' city_cd FROM dual
UNION ALL SELECT 2, 'busan' FROM dual
UNION ALL SELECT 3, 'busan,ulsan' FROM dual
)
, table_b AS
(
SELECT 'busan' city_cd, '부산' city_nm FROM dual
UNION ALL SELECT 'seoul', '서울' FROM dual
UNION ALL SELECT 'ulsan', '울산' FROM dual
)
SELECT a.seq
, a.city_cd
, LISTAGG(b.city_nm, ',') WITHIN GROUP(ORDER BY INSTR(','||a.city_cd||',', ','||b.city_cd||',')) city_nm
FROM table_a a
, table_b b
WHERE INSTR(','||a.city_cd||',', ','||b.city_cd||',') > 0
GROUP BY a.seq, a.city_cd
;
감사합니다. rownum 이 추가 되어서 좀 수정할 부분이 생겼지만 잘 해결하였습니다