DB

[MSSQL] STUFF() / FOR XML PATH()

조셉LEE 2024. 3. 5. 11:33
728x90
반응형
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

결과

 

반응형
LIST

'DB' 카테고리의 다른 글

DB 정렬 ORDER BY 관련  (1) 2024.03.07
WHERE 조건에 CASE문 처리  (0) 2024.03.07
오라클 HINT  (1) 2024.03.05
소수점 처리 방법 및 계산시 유의점  (0) 2024.03.02
테이블 구조를 변경하고자 할때  (0) 2024.03.01