STUFF() / FOR XML PATH()
STUFF
문자열의 위치와 길이를 지정하여 다른 문자로 치환하는 함수
STUFF(문자열, 위치, 길이, 치환할 문자)
FOR XML PATH
쿼리의 결과 데이터를 XML 형태로 표현
FOR XML PATH('row element명')
예제)
WITH TEST_TABLE AS
(
SELECT 1 as seq, '햄버거' AS name UNION ALL
SELECT 1 as seq, '부대찌개' AS name UNION ALL
SELECT 2 as seq, '된장찌개' AS name UNION ALL
SELECT 2 as seq, '소고기전골' AS name UNION ALL
SELECT 3 as seq, '라면' AS name
)
SELECT Name
FROM TEST_TABLE
FOR XML PATH('음식')
결과)
<음식>
<Name>햄버거</Name>
</음식>
<음식>
<Name>부대찌개</Name>
</음식>
<음식>
<Name>된장찌개</Name>
</음식>
<음식>
<Name>소고기전골</Name>
</음식>
<음식>
<Name>라면</Name>
</음식>
▶ 하나로 표현
WITH TEST_TABLE AS
(
SELECT 1 as seq, '햄버거' AS name UNION ALL
SELECT 1 as seq, '부대찌개' AS name UNION ALL
SELECT 2 as seq, '된장찌개' AS name UNION ALL
SELECT 2 as seq, '소고기전골' AS name UNION ALL
SELECT 3 as seq, '라면' AS name
)
SELECT DISTINCT STUFF(
(
SELECT ',' + Name
FROM TEST_TABLE
FOR XML PATH('')
),1,1,'') AS '음식'
FROM TEST_TABLE AS TEST
결과

'DB' 카테고리의 다른 글
| MSSQL 소수점 처리 방법 및 계산시 유의점 (0) | 2024.11.20 |
|---|---|
| 오라클 속도향상 HINT 사용 (1) | 2024.11.19 |
| WHERE 조건에 CASE문 처리 (1) | 2024.11.06 |
| DB 정렬 ORDER BY 관련 (0) | 2024.11.05 |
| 오라클 다중 IN MSSQL에서는 EXISTS로 해보자 (0) | 2024.11.04 |