Ma table TEST
a les lignes suivantes:Aide à la requête de regroupement dans SQL Server 2005?
test | 1
test | 2
test | 3
Comment je requête pour obtenir le résultat suivant?
test | 1 - 2 - 3
Ma table TEST
a les lignes suivantes:Aide à la requête de regroupement dans SQL Server 2005?
test | 1
test | 2
test | 3
Comment je requête pour obtenir le résultat suivant?
test | 1 - 2 - 3
Vous pouvez utiliser la fonction Coalesce pour trier des nombres dans une liste. Espérons que cela vous donne un début:
Declare @T as Table (Col1 varchar(35), Col2 int)
Insert into @T(Col1, Col2)
Select 'Test', 1
Insert into @T(Col1, Col2)
Select 'Test', 2
Insert into @T(Col1, Col2)
Select 'Test', 3
DECLARE @X varchar(200)
SELECT @X = COALESCE(@X + ' - ', '') + Cast(Col2 as varchar(5))
From @T
Select @X
Essayez:
SELECT x.column1,
STUFF(SELECT ' - ' + t.column2
FROM TEST t
WHERE t.column1 = x.column1
ORDER BY t.column1
FOR XML PATH(''), 1, 1, '')
FROM TEST x
Référence: STUFF
u peut utiliser ces données par exemple essai | 1 test | 2 test | 3 –
qu'en est-il de FOR XML PATH ('') –
Pouvez-vous interroger sur une seule ligne dans le serveur de requêtes SQL 2005? –
Vous devez créer une fonction pour interroger la table pour toutes les valeurs col1. Ensuite, faites quelque chose comme ceci pour utiliser la fonction: Sélectionnez Distinct dbo.Function_List (Col1) De testTable –