首页 > 代码库 > 自定义sql server 聚合涵数
自定义sql server 聚合涵数
using System;using System.Data;using System.Data.SqlClient;using System.Data.SqlTypes;using Microsoft.SqlServer.Server;using System.Text;using System.Collections.Generic;[Serializable][Microsoft.SqlServer.Server.SqlUserDefinedAggregate(Format.UserDefined, IsInvariantToDuplicates = false, IsInvariantToNulls = true, IsInvariantToOrder = false, IsNullIfEmpty = true, MaxByteSize = 8000)]public struct SumPart : IBinarySerialize { private StringBuilder _reuslt; //private List<string> _li ; public void Init() { // 在此处放置代码 _reuslt = new StringBuilder(); //_li = new List<string>(); } public void Accumulate(SqlString Value) { // 在此处放置代码 if (Value.IsNull) { return; } else { //_li.Add(Value.Value); if (_reuslt.Length > 0) { _reuslt.Append("$"); } _reuslt.Append(Value.Value); } } public void Merge(SumPart Group) { // 在此处放置代码 _reuslt.Append(Group._reuslt); } public SqlString Terminate() { // 在此处放置代码 //if(li.Count>0) 为什么li老是==null???? //if (_li == null) //{ // return new SqlString(""); //} if (_reuslt.Length > 0) { string strReturn = ""; string[] arrayStr = _reuslt.ToString().Split(‘$‘); List<string> li = new List<string>(); for (int i = 0; i < arrayStr.Length; i++) { li.Add(arrayStr[i]); } li.Sort(); foreach (string item in li) { strReturn += "$"+item ; } return new SqlString(strReturn); //return new SqlString(_reuslt.ToString()); } return new SqlString(""); } // 这是占位符成员字段 private int var1; #region IBinarySerialize 成员 public void Read(System.IO.BinaryReader r) { _reuslt = new StringBuilder(r.ReadString()); } public void Write(System.IO.BinaryWriter w) { w.Write(_reuslt.ToString()); } #endregion}
自定义sql server 聚合涵数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。