首頁 > 資料庫 > mysql教程 > 如何複製SQL Server 2017年之前版本的`string_agg`函數?

如何複製SQL Server 2017年之前版本的`string_agg`函數?

Patricia Arquette
發布: 2025-01-20 19:50:09
原創
507 人瀏覽過

How Can I Replicate SQL Server's `string_agg` Function in Versions Before 2017?

在 2017 年之前的 SQL Server 中模擬 string_agg

SQL Server 的 string_agg 函數於 2017 年推出,簡化了字串連線。 然而,對於舊版本,我們需要替代方法。本文示範了一種實現類似結果的方法。

目標是複製此查詢的功能:

<code class="language-sql">SELECT STRING_AGG(t.id, ',') AS id
FROM Table t;</code>
登入後複製

這使用逗號作為分隔符號連接「Table」表中的「id」列值。

2017 年之前的 SQL Server 缺少 string_agg。 此解決方案利用FOR XML PATH方法:

<code class="language-sql">SELECT STUFF((SELECT ',' + CAST(t.id AS VARCHAR(MAX))
              FROM Table t
              FOR XML PATH('')), 1, 1, '');</code>
登入後複製

這巧妙地建構了一個逗號分隔的字串。 FOR XML PATH('') 產生 XML 表示形式,有效建立逗號分隔清單。 STUFF() 然後刪除前導逗號。 這有效地模仿了 string_agg 行為。

此解決方法為舊版 SQL Server 中的字串連線提供了實用的解決方案,鏡像了較新 string_agg 函數的功能。

以上是如何複製SQL Server 2017年之前版本的`string_agg`函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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