T-SQL中單列傳回多個值
在SQL Server環境中,從不同的行取得多個值並將其合併到單一欄位中是一個常見的任務。這在檢索與特定使用者關聯的所有別名等場景中特別有用。
為了有效地實現這一點,可以考慮使用一個利用COALESCE函數的自訂函數。這種方法允許您逐步將檢索到的值連接到單一字串中,最終提供所需的輸出。
下面是一個名為GetAliasesById的函數範例:
<code class="language-sql">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</code>
定義此函數後,您可以將其整合到您的查詢中以取得所需的輸出:
<code class="language-sql">SELECT UserID, dbo.GetAliasesByID(UserID) FROM UserAliases GROUP BY UserID</code>
此查詢將傳回一個包含兩列的表:UserID和Aliases。 Aliases列將包含與每個使用者關聯的所有別名的逗號分隔列表,滿足在單一列中傳回多個值的指定要求。
以上是如何使用 T-SQL 將多行合併為具有逗號分隔值的單列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!