Concatenazione risultati in una singola cella con STRING AGG
Da Webmobili Wiki.
Per mostrare un elenco di risorse collegate ad una singola row, separate da un carattere separatore, basta utilizzare STRING_AGG().
ES. Questa query estrae le occasioni del negozio 44334.
Per ogni riga, nel campo Immagini stampa l'elenco delle immagini del prodotto separate da spazio.
SELECT
Product.ID AS ProductId
,Product.[Name] AS ProductName
,Pictures.Immagini
FROM ProductBargain
INNER JOIN Product ON ProductBargain.ProductId = Product.ID
LEFT OUTER JOIN Picture ON Product.PictureId = Picture.ID
OUTER APPLY(
SELECT Product.ID AS ProductID,
STRING_AGG('https://immagini.designbest.com/pictures/' +Picture.EntityValue + '-'+CAST(EntityId AS VARCHAR(10))+'-'+CAST(ID AS VARCHAR(10))+'.jpg', ' ') AS Immagini
FROM Picture
WHERE EntityId = Product.ID AND EntityGroup = 'Product' AND EntityKey = 'gallery'
) AS Pictures
WHERE ProductBargain.ShopPointID = 44334
ORDER BY ProductBargain.DisplayOrder, Product.LastUpdate DESC