문자열 잘라서 join 기능 질문입니다.
사용자 테이블이 아래와 같이 존재하구요
table name : userlist
| sabun | fullname | celno | sajin |
| A0001 | AAAAAA | 010-1111-2222 | A123123123.jpg |
| A0002 | BBBBBB | 010-2222-3333 | BD3423423.jpg |
| A0003 | CCCCCC | 010-4444-3333 | BD333333.jpg |
| A0004 | DDDDDD | 010-6666-3333 | B4444444.jpg |
할일관리 테이블이 아래와 같이 존재합니다.
table_name : toto_list
| idx | subject | writerid | shareid |
| 1 | 수강신청 마무리 하기 | A0001 | A0002,A0003 |
| 2 | 학생회비 납부 확인하기 | A0001 | A0002,A0003,A0004 |
원하는 결과 값
| idx | subject | writerid | shareid | sajin |
| 1 | 수강신청 마무리 하기 | A0001 | A0002,A0003 | BD3423423.jpg,BD333333.jpg |
| 2 | 학생회비 납부 확인하기 | A0001 | A0002,A0003,A0004 | BD3423423.jpg,BD333333.jpg,B4444444.jpg |
FNC_SPLIT 함수를 이용해서 일반 조회검색까지는 구현이 되었는데..
sajin 파일명이 sabun 가 틀릴경우는 적용이 안되는 문제가 발생해서 userlist 테이블에서 sajin정보를
연계해오고 싶습니다.
조언 부탁드립니다.
Comment 1
-
지영아빠
2023.02.19 21:32


참고요
with userlist as ( select 'A0001' as sabun,'AAAAAA' as fullname, '010-1111-2222' as celno, 'A123123123.jpg' as sajin union all select 'A0002', 'BBBBBB', '010-2222-3333', 'BD3423423.jpg' union all select 'A0003', 'CCCCCC', '010-4444-3333', 'BD333333.jpg' union all select 'A0004', 'DDDDDD', '010-6666-3333', 'B4444444.jpg') , toto_list as ( select 1 as idx, '수강신청 마무리 하기' as subject, 'A0001' as writeid, 'A0002,A0003' as shareid union all select 2, '학생회비 납부 확인하기', 'A0001', 'A0002,A0003,A0004' ) select x.idx, x.subject, x.writeid, string_agg(x.shareid, ',') as shareid, string_agg(y.sajin, ',') as sajin from (select idx, subject, writeid, b.shareid from toto_list a cross apply (select value as shareid from string_split(a.shareid, ',')) b) x inner join userlist y on x.shareid = y.sabun group by x.idx, x.subject, x.writeid