반응형
여러 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
반응형
'데이터베이스 > MSSQL' 카테고리의 다른 글
MSSQL - 프로시저에서 SELECT 절의 값을 변수에 할당하는 방법 (0) | 2023.07.12 |
---|---|
MSSQL 문자 함수 모음 (0) | 2023.06.28 |
MSSQL WITH NOLOCK 설정하기 (0) | 2023.06.22 |
MSSQL 여러 컬럼의 MIN, MAX, SUM, AVG 구하기 (0) | 2023.06.13 |
MSSQL 문자 숫자 변환 및 숫자 체크 (0) | 2022.08.18 |
댓글