自定义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 聚合涵数的更多相关文章
- SQL Server 聚合函数算法优化技巧
Sql server聚合函数在实际工作中应对各种需求使用的还是很广泛的,对于聚合函数的优化自然也就成为了一个重点,一个程序优化的好不好直接决定了这个程序的声明周期.Sql server聚合函数对一组值 ...
- 数据库开发基础-SQl Server 聚合函数、数学函数、字符串函数、时间日期函数
SQL 拥有很多可用于计数和计算的内建函数. 函数的语法 内建 SQL 函数的语法是: SELECT function(列) FROM 表 函数的类型 在 SQL 中,基本的函数类型和种类有若干种.函 ...
- SQL Server 存储字符数较大字段的问题
SQL Server 2000专门提供了处理text,ntext,image字段的函数,他们是: TEXTPTR TEXTVALID READTEXT UPDATETEXT WRITETEXT 一般作 ...
- SQL Server聚合函数
聚合函数对一组值计算后返回单个值.除了count(统计项数)函数以外,其他的聚合函数在计算式都会忽略空值(null).所有的聚合函数均为确定性函数.即任何时候使用一组相同的输入值调用聚合函数执行后的返 ...
- SQL Server聚合函数与聚合开窗函数 (转载)
以下面这个表的数据作为示例. 什么是聚合函数?聚合函数:聚合函数就是对一组值进行计算后返回单个值(即分组).聚合函数在计算时都会忽略空值(null).所有的聚合函数均为确定性函数.即任何时候使用一组相 ...
- SQL Server聚合函数与聚合开窗函数
以下面这个表的数据作为示例. 什么是聚合函数? 聚合函数:聚合函数就是对一组值进行计算后返回单个值(即分组).聚合函数在计算时都会忽略空值(null). 所有的聚合函数均为确定性函数.即任何时候使用一 ...
- sql server聚合函数sum计算出来为空,怎样返回0
通常我们计算数据库中表的数据有几个常用的聚合函数 1.count : 计数 2.sum: 计算总和 3.avg: 取平均值 4.max: 取最大值 5.min: 取最小值 6.isnull: 当返回数 ...
- SQL server聚合函数、数学函数、字符串函数
一.基础语句 二.数学函数与字符串函数 三.练习 1.创建一个学生信息表,根据要求写出程序 2.新建一个超市表,进了十种商品,个数都是十件
- SQL SERVER 内存分配及常见内存问题 简介
一.问题: 1.SQL Server 所占用内存数量从启动以后就不断地增加: 首先,作为成熟的产品,内存溢出的机会微乎其微.对此要了解SQL SERVER与windows是如何协调.共享内存.并且SQ ...
随机推荐
- 判断B是不是A的子结构
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 解答: class Solution: def HasSubtree(self, pRo ...
- 【转】AD常用端口
通常在域环境中我们有部分设备在DMZ区时,就需要知道AD的相关端口.在此提供给各位: 用户登录与验证身份时会用到的连接端口用户登录时会用到以下的服务,因此如果用户的计算机与域控制器之间被防火墙隔开,就 ...
- 转载 logback的使用和logback.xml详解 http://www.cnblogs.com/warking/p/5710303.html
logback的使用和logback.xml详解 一.logback的介绍 Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch.它当前 ...
- java 可重入锁ReentrantLock的介绍
一个小例子帮助理解(我们常用的synchronized也是可重入锁) 话说从前有一个村子,在这个村子中有一口水井,家家户户都需要到这口井里打水喝.由于井水有限,大家只能依次打水.为了实现家家有水喝,户 ...
- 36. Oracle查询数据库中所有表的记录数
select t.table_name,t.num_rows from user_tables t
- 修改Tomcat的网页端口和指向路径
网页端口是在 D:\web\apache-tomcat-6.0.32\conf 下的server.xml <Connector port="8080" protocol=&q ...
- docker 报ls: cannot open directory software/: Permission denied
问题原因及解决办法 原因是CentOS7中的安全模块selinux把权限禁掉了,至少有以下三种方式解决挂载的目录没有权限的问题: 1.在运行容器的时候,给容器加特权,及加上 --privileged= ...
- Linux的学习 --corntab
计划任务的使用方法 http://www.cnblogs.com/CraryPrimitiveMan/p/4124851.html
- 分布式 session
分布式session的实现方式: 一.Session Replication 方式管理 (即session复制) 简介:将一台机器上的Session数据广播复制到集群中其余机器上 使用场景:机器较少, ...
- HBuilder开发APP自动登录时跳过"登录页面"
刚接触开发公司APP项目,用HBuilder开发工具. manifest.json中的入口页面就是"登录页面",现在获取到自动登录状态是true,但是真机联调时"登录页面 ...