본문 바로가기

MS-SQL

FOR XML PATH - 세로열 값을 한줄로(가로) 출력하기

간혹 프로그램을 짜다보면 세로열로 출력되는 다수의 데이타를 한줄의 컬럼으로 출력해서

 

문자열처리를 하고 싶은 경우가 종종 있다.

 

요즘은 MS-SQL의 버전이 올라가면서 이러한 기능을 위한 함수를 제공하는것 같은데

 

필자가 사용하는 MS-SQL은 2008 R2버전이다.

 

그래서 FOR XML PATH를 사용한다.

 

사용법은 아래와 같다.

 

SELECT ',' + NO_EMP

FROM EMPLOYEE

GROUP BY LEFT(NO_EMP, 4)

FOR XML PATH('')

 

만약 사번의 포멧방식이 2018XXXX 로 앞에 네자리가 년도라고 가정하고 위와같이 수행하면

 

,2016,2017,2018

 

식으로 출력이 될 것이다.

 

여기에 맨앞에 콤마를 지우고 싶다면 STUFF함수로 위의 쿼리를 감싸주면 해결된다.

 

그리하여 프로그램 코드안에서 콤마로 스플릿해서 사용할 수 있다.