首頁 > 資料庫 > mysql教程 > SQL Server中如何實作像Oracle的LISTAGG函數那樣的字串聚合?

SQL Server中如何實作像Oracle的LISTAGG函數那樣的字串聚合?

Patricia Arquette
發布: 2025-01-03 20:05:38
原創
824 人瀏覽過

How Can I Achieve String Aggregation in SQL Server Like Oracle's LISTAGG Function?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板