SQL Server 中的分組字串聚合:尋找 LISTAGG 替代方案
在 SQL Server 中,字串聚合可能是一個挑戰。給定一個列出汽車品牌和型號的表結構,您可能想要產生一個資料集,該資料集按品牌對汽車型號進行分組,並將它們的值連接到單一列中,類似於Oracle 中的LISTAGG 函數。
要實現此目的在 SQL Server 中,您可以使用 FOR XML PATH 方法。考慮以下查詢:
SELECT CarMakeID, CarMake, (SELECT ModelNames.ModelNames FROM (SELECT DISTINCT CarModel AS ModelNames FROM CarModels WHERE CarMakeID = make.CarMakeID FOR XML PATH('') ) AS ModelNames ) AS CarModels FROM CarMakes make
子查詢(SELECT ModelNames.ModelNames... 使用FOR XML PATH('') 方法連接每個汽車品牌的不同型號名稱。這會產生一個以逗號分隔的然後指派給外部查詢中的CarModels 欄位的模型清單。替換為所描述的子查詢以上,就可以在SQL Server中實作想要的分組和字串聚合了。
以上是SQL Server中如何實作像Oracle的LISTAGG函數那樣的字串聚合?的詳細內容。更多資訊請關注PHP中文網其他相關文章!