개발/database
[mssql] 오라클의 LISTAGG 를 mssql에서 사용
가시죠
2021. 1. 17. 18:27
반응형
오라클의 LISTAGG 효과를 MSSQL에서 구현 시
-- 오라클 (구분자로 ^^ 사용)
SELECT CAST(LISTAGG(컬럼, '^^') WITHIN GROUP (ORDER BY 정렬컬럼) AS VARCHAR2(1000)
FROM 테이블명
WHERE 조건값;
-- mssql (구분자로 ^^ 사용)
SELECT CAST(STUFF((SELECT '^^'+컬럼
FROM 테이블명
WHERE 조건값
ORDER BY 정렬컬럼
FOR XML PATH('')), 1, 2, '') AS VARCHAR(1000)) -- 2는 구분자의 길이값
;
-- 만약 문자열에 html 특수문자가 포함되어 있을 경우 (ex. &)
-- mssql (구분자로 ^^ 사용)
SELECT STUFF((SELECT '^^'+컬럼
FROM 테이블명
WHERE 조건값
ORDER BY 정렬컬럼
FOR XML PATH, TYPE).value(N'.[1]',N'varchar(1000)'),1,2,N'');
반응형