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('[문자열]','[시작위치]','[크기]','[치환문자]')