๐Ÿ“’ Database/Mssql

[MSSQL] STUFF์™€ FOR XML PATH๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด ํ•ฉ์น˜๊ธฐ

a n u e 2021. 10. 22. 08:28

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