반응형
오라클의 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'');
반응형
'개발 > database' 카테고리의 다른 글
[toad] 테이블명, 컬럼명 자동완성 (Ctrl+T) (1) | 2021.01.17 |
---|---|
[mssql] lock과 isolation level (0) | 2021.01.17 |
[mssql] CONVERT 날짜 변환표 (0) | 2021.01.17 |
[mssql] 테이블 목록 조회 (0) | 2021.01.17 |
oracle -> mssql 변경 (0) | 2021.01.17 |
댓글