데이터베이스/MSSQL
MSSQL 여러 Row를 하나로 합치기
Dokon Jang
2023. 6. 28. 08:39
반응형
여러 ROW의 컬럼의 값을 하나로 합치는 방법입니다.
XML 만드는 쿼리를 이용하는데, 아래와 같이 쿼리를 실행하면 NAME 태그로 XML이 표시됩니다.
WITH A AS
(
SELECT '이순신' NAME
UNION ALL
SELECT '홍길동' NAME
UNION ALL
SELECT '김유신' NAME
)
SELECT NAME
FROM A
ORDER BY NAME
FOR XML PATH('')
XML 태그를 없애기 위해서는 컬럼명을 지정하시 않게 해야 하는데, 구분자(,)를 넣고 ALIAS(별칭)를 지정하지 않습니다.
WITH A AS
(
SELECT '이순신' NAME
UNION ALL
SELECT '홍길동' NAME
UNION ALL
SELECT '김유신' NAME
)
SELECT ',' + NAME
FROM A
ORDER BY NAME
FOR XML PATH('')
STUFF 함수를 이용하여 첫번째 구분자(,)를 제거하면 여러 ROW의 컬럼 값을 하나로 합쳐집니다.
WITH A AS
(
SELECT '이순신' NAME
UNION ALL
SELECT '홍길동' NAME
UNION ALL
SELECT '김유신' NAME
)
SELECT STUFF((SELECT ',' + NAME
FROM A
ORDER BY NAME
FOR XML PATH('')), 1, 1, '') AS NAMES
FROM A
반응형