首頁 > 資料庫 > mysql教程 > 如何在 T-SQL 中將多行連接成一列?

如何在 T-SQL 中將多行連接成一列?

DDD
發布: 2025-01-12 09:07:46
原創
1035 人瀏覽過

How to Concatenate Multiple Rows into a Single Column in T-SQL?

使用 T-SQL 將多個值傳回為單列

在處理包含單一屬性的多個值的表時,需要將這些值檢索並合併到單列中,以便有效率地進行資料分析。本文深入探討了一種使用函數和字串操作組合來在一列中傳回多個值的解決方案。

範例:

考慮「UserAliases」表,每個使用者有多個別名:

<code>UserId/Alias  
1/MrX  
1/MrY  
1/MrA  
2/Abc  
2/Xyz</code>
登入後複製

目標是將資料轉換為以下格式:

<code>UserId/Alias  
1/ MrX, MrY, MrA  
2/ Abc, Xyz</code>
登入後複製

解:

為此,我們使用自訂函數“GetAliasesById”,該函數使用“COALESCE”函數。此函數初始化一個變數“@output”,並迭代地向其中添加別名值,並以逗號分隔。以下是函數程式碼:

CREATE FUNCTION [dbo].[GetAliasesById]
(
    @userID int
)
RETURNS varchar(max)
AS
BEGIN
    declare @output varchar(max)
    select @output = COALESCE(@output + ', ', '') + alias
    from UserAliases
    where userid = @userID

    return @output
END
登入後複製

最後,我們檢索資料並應用「GetAliasesById」函數來合併別名:

SELECT UserID, dbo.GetAliasesByID(UserID)
FROM UserAliases
GROUP BY UserID
登入後複製

此查詢傳回所需輸出,每個使用者的多個別名合併到單列中。 “COALESCE”函數有效地處理空值,確保有效的字串輸出。

以上是如何在 T-SQL 中將多行連接成一列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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