從單一欄位擷取多個值的 T-SQL 技術
在 SQL Server 資料庫管理中,高效率檢索與單一記錄關聯的多個值是一項常見任務。這通常涉及具有一對多關係的表,其中單個標識符連結到多個相關值。 本文示範了一種使用 T-SQL 函數和字串操作的穩健方法。
考慮一個 UserAliases
表,其中每個使用者可以有多個別名。 挑戰在於將特定使用者的所有別名檢索到單一欄位中。 透過將 COALESCE
函數與使用者定義的函數結合,可以優雅地解決這個問題。
以下 T-SQL 程式碼說明了此解決方案:
<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; GO SELECT UserID, dbo.GetAliasesByID(UserID) AS Aliases FROM UserAliases GROUP BY UserID; GO</code>
GetAliasesById
函數採用 userID
作為輸入,並傳回所有關聯別名的逗號分隔字串。 COALESCE
處理潛在的空值,確保輸出格式正確。然後,主 SELECT
語句為每個使用者呼叫此函數,從而產生一個包含每個使用者 ID 的所有別名的欄位。
此方法提供了一種簡潔有效的方法來管理和顯示連結到單一實體的多個值,從而簡化了 T-SQL 應用程式中的資料處理。
以上是如何使用 T-SQL 從 SQL Server 中的單一欄位檢索多個值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!