MSSQL로 [GROUP_CONCAT]기능 구현
페이지 정보
작성자 서방님 댓글 0건 조회 190회 작성일 14-10-15 10:26본문
table 이 다음과 같이 있다.
city_table
nation | city |
한국 | 서울 |
한국 | 부산 |
한국 | 대구 |
일본 | 동경 |
일본 | 나가사키 |
행은 저런 식으로 되어있지만 출력을 아래와 같이 하고 싶은 것이다.
nation | city list |
한국 | 서울,부산,대구 |
일본 | 동경,나가사키 |
SELECT STUFF((SELECT CAST(',' AS VARCHAR(MAX)) + city
FROM city_table
where nation = '한국'
FOR XML PATH('')), 1, 1, '') AS cityList
이 테이블을 출력하면
city list
서울,부산,대구 |
이런 값을 얻을 수 있다.
여기에 응용을 해서
group by 후 조인문을 이용하면 원하는 결과를 쉽게 구현 할 수 있다.
select OUT_T.NATION, (
SELECT STUFF((SELECT CAST(',' AS VARCHAR(MAX)) + CITY
FROM CITY_TABLE IN_T
where IN_T.NATION = OUT_T.NATION
FOR XML PATH('')), 1, 1, '') AS CITYLIST
)
from CITY_TABLE OUT_T
group by NATION
nation | city list |
한국 | 서울,부산,대구 |
일본 | 동경,나가사키 |
댓글목록
등록된 댓글이 없습니다.