在 SQL Server 中连接组
要在 SQL Server 2005 中连接组内的值,请考虑使用用户定义的聚合函数。
解决方案:
创建用户定义的聚合函数 (UDAF):
<code class="language-sql"> CREATE AGGREGATE [dbo].[ConcatValues] (@str VARCHAR(MAX)) RETURNS VARCHAR(MAX) AS BEGIN DECLARE @result VARCHAR(MAX) = '', @delim VARCHAR(2) = ''; WHILE @str IS NOT NULL BEGIN SET @result = @result + @delim + @str; SET @delim = ','; SET @str = NEXT VALUE; END; RETURN @result; END;</code>
在查询中使用 UDAF:
<code class="language-sql"> SELECT Id, [dbo].[ConcatValues](Value) AS ConcatenatedValues FROM YourTable GROUP BY Id;</code>
结果:
Id | ConcatenatedValues |
---|---|
1 | 'A,B' |
2 | 'C' |
请注意,此解决方案使用了一个 WHILE
循环来迭代输入值,并使用逗号作为分隔符将它们连接起来。 这与原始示例中的 FOR
循环有所不同,但实现了相同的功能,并且在 SQL Server 中更常见。 NEXT VALUE
用于获取聚合函数的下一个输入值。 YourTable
应该替换为您实际的表名。
以上是如何在 SQL Server 中连接组内的值?的详细内容。更多信息请关注PHP中文网其他相关文章!