STUFF : ๋ฌธ์์ด์์ ์์์์น์ ํฌ๊ธฐ๋ฅผ ์ง์ ํ์ฌ์ ์ํ๋ ๋ฌธ์์ด๋ก ๋์ฒด. ๋น์ทํ ๊ฐ๋ ์ผ๋ก๋ REPLACE
SUTFF('๋ฌธ์์ด', ์์์์น, ํฌ๊ธฐ, '๋์ฒด๋ฌธ์์ด)
FOR XML : ์ฟผ๋ฆฌ์ ์คํ ๊ฒฐ๊ณผ๋ฅผ XMLํ์์ผ๋ก ๋ง๋ค์ด์ค๋ค.
[๋ชจ๋]
1. RAW : ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉํ์ฌ, ๊ฒฐ๊ณผ ์งํฉ์ ๊ฐ ํ ์์ ํ๊ทธ๋ก <row /> ์ผ๋ฐ ์๋ณ์๋ฅผ ๊ฐ๋ XML ์์๋ก ๋ณํ. ํ ์งํฉ์ ๊ฐ๊ฐ์ ํ๋ง๋ค, SELECT๋ฌธ์ผ๋ก ๋ฐํ๋๋ ๋จ์ผ ํ์ด ์์ฑ.
2. AUTO : ๋จ์ํ๊ฒ ์ค์ฒฉ๋ XML ํธ๋ฆฌ๋ก ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ๋ฐํ
3. EXPLICIT : XML ๊ฒฐ๊ณผ ๊ฐ์ ํน์ฑ์ ์์๋ฅผ ํผํฉํ๊ณ , ์ถ๊ฐ ์ค์ฒฉ์ ์ฌ์ฉํ์ฌ ๋ํ๋ผ ์ ์๋ค.
4. PATH : EXPLICIT ๋ชจ๋์ ๊ธฐ๋ฅ์ ์กฐ๊ธ ๋ ๊ฐ๊ฒฐํ๊ฒ ์ด์ฉํ ์ ์๋ค.
์์
SELECT
STUFF((
SELECT ',' + NAME
FROM TABLE_TEMP
FOR XML PATH('')
),1,1,'') AS NAME
FROM TABLE_TEMP AS TEST
๊ฒฐ๊ณผ
* SEQ๋ฒํธ๋ก ๊ทธ๋ฃน์ง์ด ์ถ๋ ฅ๋ ๊ฐ๋ฅํ๋ค.
SELECT
STUFF((
SELECT ',' + NAME
FROM TABLE_TEMP
WHERE SEQ = TEST.SEQ --์ถ๊ฐ
FOR XML PATH('')
),1,1,'') AS NAME
FROM TABLE_TEMP AS TEST
๊ฒฐ๊ณผ
์ฐธ๊ณ - ํฐ์คํ ๋ฆฌ ์ฝ๋ฉํฉํ ๋ฆฌ https://coding-factory.tistory.com/118
'๐ Database > Mssql' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[MSSQL] ๋ง์ด ์ฐ๋ ๋ ์ง ํฌ๋งท ์ ๋ฆฌ (0) | 2022.02.09 |
---|---|
[MSSQL] STUFF (0) | 2021.10.28 |
[MSSQL] PIVOT์ ์ด์ฉํ ์ธ๋ก ๋ฐ์ดํฐ ๊ฐ๋ก ์ถ๋ ฅ (+UNPIVOT) (0) | 2021.10.25 |
[MSSQL] UNION / UNION ALL ์ฐจ์ด (0) | 2021.10.25 |
[MSSQL] GROUP BY, DISTINCT์ (0) | 2021.10.22 |