MSSQL 쿼리 질문합니다. 0 2 859

by 라슈 [SQLServer] [2014.08.05 10:56:12]


 아래와 같은 테이블이 2개 있을때

ID 이름
1 철수
2 영희
3 수영
   

 

ID 사용자ID
a 1|
b 1|3|
c 1|2|3|

 

결과를

ID 사용자명
a 철수|
b 철수|수영|
c 철수|영희|수영|
   

으로 만들려면 어떻게 해야 하나요?

쿼리만으로도 가능 할 까요??

잘 부탁드립니다.

by 마농 [2014.08.05 13:05:52]
WITH t1 AS
(
SELECT 1 id, '철수' nm
UNION ALL SELECT 2, '영희'
UNION ALL SELECT 3, '수영'
)
, t2 AS
(
SELECT 'a' id, '1|' id_list
UNION ALL SELECT 'b', '1|3|'
UNION ALL SELECT 'c', '1|2|3|'
)
SELECT id
     , (SELECT nm + '|'
          FROM t1 b
         WHERE CHARINDEX('|'+CAST(b.id AS VARCHAR)+'|', '|'+a.id_list) > 0
         ORDER BY b.id
           FOR XML PATH('')
        ) nm_list
  FROM t2 a
 ORDER BY id
;

 


by 라슈 [2014.08.05 13:18:33]

마농님한테는 여러번 도움 받는군요.^^

정말 감사합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입