2

在 Firebird 中,有一个名为的聚合List()将多个结果转换为逗号分隔的字符串。

SQL Server 中似乎不存在此函数。是否有任何等价物不涉及使用或构建自己的 CLR UDF的大、长、丑、的解决方法?for xml(是的,我知道这些方法。寻找我可能不知道的东西。)

4

1 回答 1

7

不,这些是您必须使用的解决方法。自 2006 年以来,我们一直在要求提供GROUP_CONCAT等价物:

http://connect.microsoft.com/SQLServer/feedback/details/247118/sql-needs-version-of-mysql-group-concat-function

...但该项目仅获得 13 个赞成票(和 1 个反对票)。因此,我并不完全责怪微软专注于产品的其他增强功能以​​推动销售和客户满意度。没有多少人抱怨(至少不是直接抱怨),GROUP_CONCAT也不是营销人员可以在幻灯片或商业广告中使看起来性感的东西 - 开发人员的生产力并不是销售许可证的确切内容。(另一方面,我想见见 14 多位设法得到类似EOMONTHIIF实施的愚蠢事情的人。)

因此,如果您认为拥有此功能很重要,请投票,更重要的是,评论这将如何提高您的生产力/底线:

FWIW,XML版本很丑,但不难掌握。我已经在 SO 上的几十个答案中使用了它,我什至不必再去查找它了。我也不觉得它非常慢。为什么你认为微软原生的东西会更快?它必须做基本相同的事情。

于 2013-04-05T18:50:52.523 回答