Comment puis-je concatinate une sous-requête résultat de champ dans la requête parent?
De base de données: Sql Server 2008.
J'ai vraiment un (faux) groovy requête comme ceci:-
SELECT CarId, NumberPlate
(SELECT Owner
FROM Owners b
WHERE b.CarId = a.CarId) AS Owners
FROM Cars a
ORDER BY NumberPlate
Et c'est ce que j'essaie de faire...
=> 1 ABC123 John, Jill, Jane
=> 2 XYZ123 Fred
=> 3 SOHOT Jon Skeet, ScottGu
Donc, j'ai essayé d'utiliser
COMME [Text()] ... FOR XML PATH('')
mais c'était y compris bizarre caractères codés (par exemple. retour chariot). ... donc, je ne suis pas à 100% heureux avec cela.
J'ai aussi essayé de voir si il y a un FUSIONNENT solution, mais toutes mes tentatives ont échoué.
Donc - des suggestions?
Vous devez vous connecter pour publier un commentaire.
Essayez la solution à cette question:
Comment créer une fonction SQL Server pour "rejoindre" plusieurs lignes à partir d'une sous-requête dans un seul champ délimité?
🙂
De répondre à un vieux post, juste pensé qu'il avait besoin d'une mise à jour pour les nouvelles versions de SQL Server:
Pour SQL Server 2017 utilisation STRING_AGG(expression, séparateur)
GROUP_CONCAT est MySQL.
Avant SQL 2017, vous pouvez aussi faire quelque chose comme (ciselée de notre actuel code de base sur SQL Server 2016):
Des liens vers STRING_AGG
https://database.guide/the-sql-server-equivalent-to-group_concat/
https://docs.microsoft.com/en-us/sql/t-sql/functions/string-agg-transact-sql?view=sql-server-2017
Lien de TRUCS:
https://docs.microsoft.com/en-us/sql/t-sql/functions/stuff-transact-sql?view=sql-server-2017
et enfin des liens vers XML:
https://docs.microsoft.com/en-us/sql/relational-databases/xml/for-xml-sql-server?view=sql-server-2017
Utilisation
GROUP_CONCAT