Jestem pewien, że zostało to zadane, ale nie mogę znaleźć właściwych terminów wyszukiwania.Zgrupowane agregowanie ciągów znaków/LISTAGG dla serwera SQL Server
Biorąc schemat tak:
| CarMakeID | CarMake
------------------------
| 1 | SuperCars
| 2 | MehCars
| CarMakeID | CarModelID | CarModel
-----------------------------------------
| 1 | 1 | Zoom
| 2 | 1 | Wow
| 3 | 1 | Awesome
| 4 | 2 | Mediocrity
| 5 | 2 | YoureSettling
Chcę produkować zestawu danych takiego:
| CarMakeID | CarMake | CarModels
---------------------------------------------
| 1 | SuperCars | Zoom, Wow, Awesome
| 2 | MehCars | Mediocrity, YoureSettling
Co mogę zrobić w miejscu „AGG” na smyczki w SQL Server w następujące zapytanie o styl?
SELECT *,
(SELECT AGG(CarModel)
FROM CarModels model
WHERE model.CarMakeID = make.CarMakeID
GROUP BY make.CarMakeID) as CarMakes
FROM CarMakes make
Wow nietrywialne. –
Artykuł wymaga aktualizacji - CLR był dla SQL Server 2005. 2008 obsługuje wiele parametrów w funkcji agregującej, dzięki czemu można odtworzyć parametry GROUP_CONCAT MySQL. –
@OMG Kucyki: czy możesz wyjaśnić więcej lub link proszę? Nie jestem całkiem pewien, co masz na myśli ... – gbn