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中文网其他相关文章!