将列值连接为单值SQL Server 2005

use*_*449 6 sql sql-server-2005

我有一个列的表:

|-------------|
| ColumnName  |
|-------------|
| Value One   |
| Value Two   |
| Value Three |
| Value Four  |
| Value Five  |
|-------------|
Run Code Online (Sandbox Code Playgroud)

我会声明一个变量,

DECLARE @ColumnNameList VARCHAR(MAX)
Run Code Online (Sandbox Code Playgroud)

我应该在我的变量中找到以下值

'Value One,Value Two,Value Three,Value Four,Value Five'
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?

提前致谢.

Gia*_*los 5

SELECT @ColumnNameList = STUFF 
(
    SELECT ',' + ColumnName  
    FROM TableName
    ORDER BY ColumnName  
    FOR XML PATH('root')
), 1, 1, ''
Run Code Online (Sandbox Code Playgroud)