【问题标题】:Bitwise OR function in SQL ServerSQL Server 中的按位或函数
【发布时间】:2014-04-23 20:38:46
【问题描述】:

我想创建一个自定义的按位 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/ 但是有很多代码(不确定我的情况真正需要什么)

【问题讨论】:

    标签: c# sql-server aggregate-functions sqlclr bitwise-or


    【解决方案1】:

    这个链接几乎解释了一切: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 中可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-28
      • 2021-02-28
      • 2019-12-28
      • 2010-11-23
      • 2020-11-12
      • 1970-01-01
      • 2015-08-12
      • 1970-01-01
      相关资源
      最近更新 更多