0
votes

Concaténer plusieurs lignes pour former une seule ligne dans SQL Server?

Vue d'ensemble

J'ai besoin de créer un champ de description décrivant une entité. Les données que je travaille avec la description de la propriété divisée pour chaque clé individuelle de ma table. Ci-dessous est un exemple de ce que les données ressemblent à: p> xxx pré>

à l'origine, j'ai écrit une requête à l'aide d'une fonction d'agrégat, comme: P>

+------------+---------------------------------------------------+----------+
|    Key     |                       Desc                        | Order_Id |
+------------+---------------------------------------------------+----------+
| 5962417474 | Big Yellow Door Orange Windows Blue Triangle Roof |    14775 |
+------------+---------------------------------------------------+----------+


2 commentaires

Est-ce que cela répond à votre question? Comment Concaténer le texte de plusieurs lignes dans une seule chaîne de texte dans SQL Server?


@Deanoc il fait en effet. Mes termes de recherche n'étaient pas "précis" dans la description de mon problème. Une fois que j'ai regardé sur string_agg J'ai trouvé d'autres utilisateurs de liaison de solutions avec Stuff, pour xml, chemin () et avez répondu à ma propre question avant le lien que vous avez posté.


3 Réponses :


2
votes

Cela dépend de la langue SQL que vous utilisez, mais vous voudrez utiliser une sorte de fonction de Concat / Array AGG de groupe. Par exemple: xxx


2 commentaires

L'OP a spécialement étiqueté SQL Server, qui ne prend pas en charge groupe par {ordinal} , et n'a pas de fonction group_concat (c'est string_agg )


Merci les deux, j'ai pu comprendre en effectuant une recherche de string_agg .



0
votes

J'ai résolu mon problème avec la requête suivante pour ceux qui ont le même problème et n'ont pas accès à string_agg code> qui est introduit dans SQL Server 2017 code>:

SELECT 
    [P].[KEY],
    [PROPERTY_DESCRIPTION] = STUFF((
          SELECT ' ' + [P2].[DESC]
          FROM [dbo].[PROP_DESC] [P2]
          WHERE [P].[KEY] = [P2].[KEY]
          FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 1, '')
 FROM [dbo].[PROP_DESC] [P]
 WHERE [P].[KEY] = '5962417474'
 GROUP BY [P].[KEY]


0 commentaires

0
votes

Il existe de nombreuses façons de le faire dans SQL Server:

ci-dessous est un moyen: xxx


1 commentaires

J'ai déjà utilisé trucs, pour XML, chemin () pour résoudre mon problème. Je suis intéressé par les autres façons que vous avez mentionnées. Pourriez-vous fournir un exemple?