将列值连接为单值SQL Server 2005

时间:2013-08-26 09:06:14

标签: sql sql-server-2005

我有一个包含列的表:

|-------------|
| ColumnName  |
|-------------|
| Value One   |
| Value Two   |
| Value Three |
| Value Four  |
| Value Five  |
|-------------|

我将声明一个变量

DECLARE @ColumnNameList VARCHAR(MAX)

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

'Value One,Value Two,Value Three,Value Four,Value Five'

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

提前致谢。

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

SELECT @ColumnNameList = coalesce(@ColumnNameList + ',' + ColumnName, ColumnName) 
FROM <table>
SELECT @ColumnNameList

答案 2 :(得分:-1)

dbo.columnnames中的数据是: COLUMNNAMES 价值一 价值二 价值三 价值四 价值五

CODE:

declare @lv_table table( column_values varchar(100))

declare @product_v varchar(max)

insert into @lv_table

select * from dbo.columnnames


select ''''+
    Stuff(
        (
    SELECT  ',' + column_values 
    FROM  @lv_table
    FOR XML PATH('')
    ), 1, 1, '') +''''

输出:

  

&#39;价值一,价值二,价值三,价值四,价值五&#39;