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: