有没有什么好的方法在SQL Server中构建逗号分隔列表?

时间:2013-04-05 18:48:16

标签: sql sql-server aggregate-functions

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

此功能似乎不存在于SQL Server中。是否有任何等效的内容不涉及使用for xml的大型,长期,丑陋,解决方法或构建您自己的CLR UDF? (是的,我知道那些方法。寻找我可能不知道的东西。)

1 个答案:

答案 0 :(得分:7)

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

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

......但该项目仅获得了13次投票(以及一次投票)。因此,我并不是因为专注于产品的其他增强功能而无法推动销售和客户满意度。没有很多人抱怨(至少不是直接),GROUP_CONCAT并不是营销人员可以在幻灯片或商业中看起来性感的东西 - 开发人员的生产力并不是销售许可证的原因。 (另一方面,我想要见到14位成功实现EOMONTHIIF等愚蠢行为的人。)

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

FWIW,XML版本很难看,但掌握并不难。我已经在这里使用过几十个答案了,我甚至不用去查阅了。我也发现它非常慢。为什么你认为微软本土化的东西会更快?它必须做同样的事情。