MS SQL Server中的自定义聚合函数?
时间:2020-03-05 18:47:39 来源:igfitidea点击:
如何在MS SQL Server中创建自定义聚合函数?一个例子会很有帮助。
解决方案
回答
SQL Server 2000并不正式支持自定义聚合函数。但是,我最近也需要该功能,并且我发现本文很有启发性:
http://weblogs.sqlteam.com/jeffs/articles/1490.aspx
但是,这有点hacking:它需要访问sp_OA ___
扩展过程。
摘要是,我们可以使用一系列四个包装函数来模拟一个聚合函数,每个包装函数执行以下任务之一:
- 清除GROUP BY边界上的ActiveX对象状态
- 销毁对象。在运行查询之后和错误处理期间调用此函数。
然后,将第2项和第3项包括在查询的选择列表中,并且第2项也必须包装在现有的无效集合函数中,例如MAX()或者MIN()。我们也可以将这种技术用于累积函数来执行行号之类的操作。
一些评论表明,在某些情况下,优化器可能会尝试通过优化调用来消除聚合效应,尽管我希望那确实是非常罕见的情况。但是,我发现了这个问题,因为我认真对待了这些警告,以继续寻找更好的东西。