如何在 MS SQL Server 中创建自定义聚合函数?举个例子会有很大帮助。
SQL Server 2000 并不正式支持自定义聚合函数。然而,我最近也需要该功能,我发现这篇文章很有启发性:
http://weblogs.sqlteam.com/jeffs/articles/1490.aspx http://weblogs.sqlteam.com/jeffs/articles/1490.aspx
不过,这有点黑客行为:它需要访问sp_OA___
扩展程序。
总结就是你可以simulate具有一系列四个包装函数的聚合函数,每个包装函数执行以下任务之一:
- Create an ActiveX object that can hold state within the query. Call this before running the query.
- 使用 ActiveX 对象进行实际聚合。
- 清除 GROUP BY 边界上的 ActiveX 对象状态
- 摧毁该物体。打电话给这个after运行查询和错误处理期间。
然后您包括项目 2and3 在查询的选择列表中,并且项目 2 还必须包装在现有的无效聚合函数中,例如 MAX() 或 MIN()。您还可以将此技术用于累积函数来执行行号等操作。
一些评论表明优化器可能会尝试通过在某些情况下优化掉调用来消除聚合效应,尽管我预计这确实是一种非常罕见的情况。然而,我发现了这个问题,因为我足够认真地对待这些警告,以继续寻找更好的东西。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)