2013-08-26 9 views
5

Ho una tabella con una colonna:valori della colonna Concatena come unico valore di SQL Server 2005

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

farò dichiarare una variabile,

DECLARE @ColumnNameList VARCHAR(MAX) 

e dovrei trovare il valore di seguito nella mia variabile

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

Qualcuno può aiutarmi a fare questo?

Grazie in anticipo.

+0

possibile duplicato di [come concatenare tutte le stringhe di una determinata colonna per ogni gruppo] (http: // StackOverflow. it/questions/6579440/how-to-concatenate-all-string-from-a-certain-column-for-each-group) – Satpal

+0

Usa il metodo GROUP_CONCAT() –

risposta

5
SELECT @ColumnNameList = STUFF 
(
    SELECT ',' + ColumnName 
    FROM TableName 
    ORDER BY ColumnName 
    FOR XML PATH('root') 
), 1, 1, '' 
1
SELECT @ColumnNameList = coalesce(@ColumnNameList + ',' + ColumnName, ColumnName) 
FROM <table> 
SELECT @ColumnNameList 
-1

dati in dbo.columnnames è: columnnames valore Uno Valore due Valore Tre valore a quattro Valore Cinque

CODICE:

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, '') +'''' 

uscita:

'Valore One, Two valore, valore di tre, quattro Valore, Valore Five'