Home > Database > Mysql Tutorial > How Do `FOR XML PATH` and `STUFF` Combine to Concatenate Data in SQL Server?

How Do `FOR XML PATH` and `STUFF` Combine to Concatenate Data in SQL Server?

Linda Hamilton
Release: 2025-01-22 23:13:18
Original
718 people have browsed it

How Do `FOR XML PATH` and `STUFF` Combine to Concatenate Data in SQL Server?

The synergy of FOR XML PATH and STUFF functions in SQL Server

In SQL Server, the combination of FOR XML PATH and STUFF functions play a vital role in organizing and joining data. Let’s break down its mechanics to achieve the desired goal:

1. Use 'FOR XML PATH' to extract XML element string

FOR XML PATH Convert query results into XML elements. By omitting the element name, it outputs a comma-separated list of values, as shown in the example:

<code class="language-sql">SELECT ',' + name FROM temp1 FOR XML PATH('')</code>
Copy after login

2. Use STUFF to remove leading commas

STUFF is used to modify a string by replacing specified characters. In this example, we remove the leading comma in the XML string:

<code class="language-sql">STUFF((SELECT ',' + NAME FROM temp1 FOR XML PATH('')), 1, 1, '')</code>
Copy after login

3. Perform join to generate list

Finally, the modified list is joined with the original table via the 'id' column:

<code class="language-sql">SELECT ID, abc = STUFF((
             SELECT ',' + name 
              FROM temp1 t1
              WHERE t1.id = t2.id
              FOR XML PATH (''))
             , 1, 1, '') from temp1 t2
group by id;</code>
Copy after login

This combination effectively concatenates the 'Name' column values ​​for each 'Id' , resulting in the expected output:

<code>Id |    Name
-------------------
1   | aaa,bbb,ccc,ddd,eee</code>
Copy after login

The above is the detailed content of How Do `FOR XML PATH` and `STUFF` Combine to Concatenate Data in SQL Server?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template