sql-server – MS SQL Server中的自定义聚合函数?

如何在MS SQL Server中创建自定义聚合函数?一个例子会有很多帮助. 解决方法 SQL Server 2000不正式支持自定义聚合函数.然而,我最近也需要这个功能,我发现这篇文章有启发性: http://weblogs.sqlteam.com/jeffs/articles/1490.aspx 但这有点黑客:它需要访

如何在MS SQL Server中创建自定义聚合函数?一个例子会有很多帮助.

解决方法

SQL Server 2000不正式支持自定义聚合函数.然而,我最近也需要这个功能,我发现这篇文章有启发性:


http://weblogs.sqlteam.com/jeffs/articles/1490.aspx

但这有点黑客:它需要访问sp_OA___扩展过程.

总结是您可以使用一系列四个包装函数来模拟聚合函数,每个函数执行以下任务之一:

>创建可以在查询中保持状态的ActiveX对象.在运行查询之前调用它.

>使用ActiveX对象进行实际聚合.
>清除GROUP BY边界上的ActiveX对象状态
破坏对象在运行查询和错误处理之后调用它.

然后,您可以在查询的选择列表中包含项目2和3,并且项目2也必须包含在现有的无效果聚合函数(如MAX()或MIN())中.您还可以使用此技术来执行累积函数,例如行号.

一些评论表明,优化器可能尝试通过优化在某些情况下的呼叫来否定聚合效应,尽管我预计这将是非常罕见的情况.但是,我发现这个问题是因为我把这些警告认真地用于继续搜索更好的东西.

关于作者: dawei

【声明】:石家庄站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐