Maison >base de données >tutoriel mysql >Comment concaténer des valeurs au sein de groupes dans SQL Server ?
Rejoindre des groupes dans SQL Server
Pour joindre des valeurs au sein de groupes dans SQL Server 2005, envisagez d'utiliser des fonctions d'agrégation définies par l'utilisateur.
Solution :
Créer une fonction d'agrégation définie par l'utilisateur (UDAF) :
<code class="language-sql"> CREATE AGGREGATE [dbo].[ConcatValues] (@str VARCHAR(MAX)) RETURNS VARCHAR(MAX) AS BEGIN DECLARE @result VARCHAR(MAX) = '', @delim VARCHAR(2) = ''; WHILE @str IS NOT NULL BEGIN SET @result = @result + @delim + @str; SET @delim = ','; SET @str = NEXT VALUE; END; RETURN @result; END;</code>
Utiliser UDAF dans les requêtes :
<code class="language-sql"> SELECT Id, [dbo].[ConcatValues](Value) AS ConcatenatedValues FROM YourTable GROUP BY Id;</code>
Résultat :
Id | ConcatenatedValues |
---|---|
1 | 'A,B' |
2 | 'C' |
Notez que cette solution utilise une boucle WHILE
pour parcourir les valeurs d'entrée et les concaténer en utilisant des virgules comme séparateurs. Ceci est différent de la boucle FOR
dans l'exemple d'origine, mais implémente la même fonctionnalité et est plus courante dans SQL Server. NEXT VALUE
est utilisé pour obtenir la prochaine valeur d'entrée de la fonction d'agrégation. YourTable
doit être remplacé par le nom réel de votre table.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!