0

我想创建一个自定义的按位 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# 代码吗?

我已经按照这篇文章实现了中位数聚合函数:http ://www.sqlservercentral.com/articles/SQL+CLR/3208/ 但是有很多代码(不确定我的情况真正需要什么)

4

1 回答 1

0

这个链接几乎解释了这一切: http: //msdn.microsoft.com/en-us/library/91e6taax (v=vs.90).aspx

  1. 在 VS 中创建 SQL Server 项目
  2. 添加项目
  3. 选择聚合
  4. 输入它的名称
  5. 编写代码:

使用系统;使用 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()
  {
  }    
}
  1. 建造
  2. 部署您的项目,它将在 SQL Server 中可用。
于 2014-03-18T09:18:29.620 回答