我想创建一个自定义按位OR聚合函数。 我想像内置的聚合函数(MIN,MAX等)一样使用它。
SELECT dbo.bitwise_or(bit_string) FROM table
其中bit_string是nvarchar(3)
因此,例如,如果表格包含两行('100','001'),则上述查询应返回'101'
我想将此实现为具有以下聚合的CLR函数/程序集:
CREATE AGGREGATE dbo.bitwise_or (bit_string nvarchar(3))
RETURNS [nvarchar(3)]
EXTERNAL NAME [Aggregate].[bitwise_or]
有人可以给我一个c#代码的快速入门吗?
我已按照这篇文章来实现amedian聚合函数:http://www.sqlservercentral.com/articles/SQL+CLR/3208/ 但是有很多代码(不确定在我的情况下真正需要什么)
答案 0 :(得分:0)
此链接几乎解释了所有内容:http://msdn.microsoft.com/en-us/library/91e6taax(v=vs.90).aspx
使用System; 使用System.Data.SqlTypes; 使用Microsoft.SqlServer.Server;
[Serializable]
[SqlUserDefinedAggregate(Format.Native)]
public struct Bitwise_or
{
//Implement the function below
// Initialize any reource here, called once
public void Init()
{
}
// Decides what action to take for each row value
public void Accumulate()
{
}
// Used by SQL Server when large amount of data is processed
public void Merge()
{
}
// Free up resources
public void Terminate()
{
}
}