V původním článku jsem popisoval, jak lze formátovat výsledek SELECTu do jednoho sloupce pomocí fíglu s XML PATH. Je to sice krkolomný zápis selectu, ale funguje.
Od SQL 2017 už je možné používat naprosto jednoduchý zápis se STRING_AGG.
Klasický dotaz zobrazí výsledky v řádcích
SELECT Posta
FROM TabPSC
Výsledek:
1. "Nový" zápis se STRING_AGG
SELECT STRING_AGG (Posta, ',')
FROM TabPSC
Výsledek:
2. Použitím starší finty pro formátování XML (pro SQL nižší verze než 2017)
SELECT ',' + Posta
FROM TabPSC
FOR XML PATH('')
Výsledek:
Pomocí příkazu STUFF odstraníme první čárku. Celá konstrukce dotazu je pak takováto:
SELECT STUFF((
SELECT ',' + Posta
FROM TabPSC
FOR XML PATH('')
), 1, 1,'')
Výsledek: