【发布时间】:2016-03-30 06:03:48
【问题描述】:
是否可以创建一个可以执行类似于内置窗口函数的功能的 C# SQL Server UDF?
例如,我想编写一个计算移动平均线的函数。我为.NET UDF 找到的唯一文档here 显示了单个值的简单输入。
但是,对于我的 50 天移动平均线,我需要每一行的值,以及前 49 行的值。
【问题讨论】:
-
为什么不在数据库本身上写一个存储过程呢?
-
@StanShaw 这就是我开始的地方。最终,我将把它扩展到相当多的股票市场数据技术分析计算,我已经读到在 T-SQL 中这样做是一个糟糕的选择,而 .NET UDF 会更好。但是,它没有给出任何上述 UDF 的示例。
-
您读到存储过程是一个糟糕的选择的原因是什么?
-
您可以创建一个 SQLCLR 聚合函数。但是,仅支持 partition by 子句。不过,这并不能真正帮助您计算滚动平均值,因为您无需调用 CLR 即可计算平均值。
-
你使用的是什么版本的 SQL?
标签: c# .net sql-server user-defined-functions sqlclr