在 Firebird 中,有一个名为的聚合List()
将多个结果转换为逗号分隔的字符串。
SQL Server 中似乎不存在此函数。是否有任何等价物不涉及使用或构建自己的 CLR UDF的大、长、丑、慢的解决方法?for xml
(是的,我知道这些方法。寻找我可能不知道的东西。)
在 Firebird 中,有一个名为的聚合List()
将多个结果转换为逗号分隔的字符串。
SQL Server 中似乎不存在此函数。是否有任何等价物不涉及使用或构建自己的 CLR UDF的大、长、丑、慢的解决方法?for xml
(是的,我知道这些方法。寻找我可能不知道的东西。)
不,这些是您必须使用的解决方法。自 2006 年以来,我们一直在要求提供GROUP_CONCAT
等价物:
...但该项目仅获得 13 个赞成票(和 1 个反对票)。因此,我并不完全责怪微软专注于产品的其他增强功能以推动销售和客户满意度。没有多少人抱怨(至少不是直接抱怨),GROUP_CONCAT
也不是营销人员可以在幻灯片或商业广告中使看起来性感的东西 - 开发人员的生产力并不是销售许可证的确切内容。(另一方面,我想见见 14 多位设法得到类似EOMONTH
并IIF
实施的愚蠢事情的人。)
因此,如果您认为拥有此功能很重要,请投票,更重要的是,评论这将如何提高您的生产力/底线:
FWIW,XML版本很丑,但不难掌握。我已经在 SO 上的几十个答案中使用了它,我什至不必再去查找它了。我也不觉得它非常慢。为什么你认为微软原生的东西会更快?它必须做基本相同的事情。