Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Server:combinando várias linhas em uma linha


Existem vários métodos.

Se você quiser apenas o valor da string consolidada retornado, esta é uma boa abordagem rápida e fácil
DECLARE @combinedString VARCHAR(MAX)
SELECT @combinedString = COALESCE(@combinedString + ', ', '') + stringvalue
FROM jira.customfieldValue
WHERE customfield = 12534
    AND ISSUE = 19602

SELECT @combinedString as StringValue 

Que retornará sua string combinada.

Você também pode tentar um dos métodos XML, por exemplo.
SELECT DISTINCT Issue, Customfield, StringValues
FROM Jira.customfieldvalue v1
CROSS APPLY ( SELECT StringValues + ',' 
              FROM jira.customfieldvalue v2
              WHERE v2.Customfield = v1.Customfield 
                  AND v2.Issue = v1.issue 
              ORDER BY ID 
                  FOR XML PATH('') )  D ( StringValues )
WHERE customfield = 12534
    AND ISSUE = 19602