sql - SQL Server 中的连接组

标签 sql sql-server group-by string-concatenation

如果我有一个这样的表:

+------------+
| Id | Value |
+------------+
| 1  | 'A'   |
|------------|
| 1  | 'B'   |
|------------|
| 2  | 'C'   |
+------------+

如何获得这样的结果集:

+------------+
| Id | Value |
+------------+
| 1  | 'AB'  |
|------------|
| 2  | 'C'   |
+------------+

我知道这在 MySQL 中使用 GROUP_CONCAT 很容易做到,但我需要能够在 MSSQL 2005 中做到这一点

谢谢

(How to use GROUP BY to concatenate strings in SQL Server? 的重复)

最佳答案

要获得干净高效的解决方案,您可以创建 an user defined aggregate function ,甚至还有an example这正是您所需要的。
然后,您可以像任何其他聚合函数一样使用它(使用标准查询计划):

query plan

关于sql - SQL Server 中的连接组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/941103/

相关文章:

mysql - 将 CASE 行与不同的值相乘

mysql - 如何按天数间隔分组

mysql - 查询搜索网址匹配

c# - 具有乘法表数学运算值的组合框

sql - @@IDENTITY、SCOPE_IDENTITY()、OUTPUT 和其他检索最后身份的方法

sql-server - 这是 MSSQL CASE 语句的好场景吗?

sql - 如果丢失,PostgreSQL 使用前一行的值

java - 按java map 列表中的动态列数分组

mysql - 在 MySql 中执行查询时与 only_full_group_by 相关的错误

sql - ROW_NUMBER() 仅适用于前 N 条记录