MSSQL

여러 행의 컬럼값을 한줄로 나타내기

흰이슬 2019. 12. 30. 12:03

여러행의 특정 컬럼 값을 한줄로 나타내 주고 싶을때가 있다. 

이럴때 이용할수 있는 방법이 있어 정리해둔다. 

학년,반,점수 컬럼을 가지는 임의의 테이블을 하나 만들었다. 

WITH TABLE_A( 학년, 반,점수) AS (
    SELECT '1학년','1반',100 UNION ALL
    SELECT '2학년','1반',200 UNION ALL
    SELECT '3학년','1반',300 
)
SELECT * FROM TABLE_A

 

나는 아래와 같이 1학년,2학년,3학년 이렇게 한줄로 보고 싶었다.

그럴땐 FOR XML PATH 을 이용하면 된다.  

 

그런데 1학년 앞에 , 도 없애고 싶다. 이럴때 STUFF함수를 사용하면 된다. 

STUFF사용 방법은 아래와 같다. start 부터 크기까지 지정한 치환문자로 바꿔준다. 

STUFF('[문자열]','[시작위치]','[크기]','[치환문자]')