网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

创建元音字母计数聚合函数

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

--
--9.7.1节示例
--

//创建元音字母计数聚合函数
using System;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.Text;
//以下Attribute标明结构体CountVowels是可序列化的,而且被用于用户定义CLR聚合函数
[Serializable]
[SqlUserDefinedAggregate(Format.Native)]
//定义结构体CountVowels
public struct CountVowels
{
    private int countOfVowels;
    public void Init() //初始化函数
    {
        countOfVowels = 0;
}
//以下函数定义了聚合函数的具体聚合操作
    public void Accumulate(SqlString value)
    {
        char[] vowels = "aeiou".ToCharArray();//获得元音数组
        char[] strs = value.Value.ToLower().ToCharArray();//将传入的参数转换为小写的字符数组
        for (int i = 0; i < strs.Length; i++)//对于传入参数字符数组的每一个字符循环操作
        {
            for (int j = 0; j < vowels.Length; j++)//对每一个元音字母都进行匹配
            {
                if (strs[i] == vowels[j]) //如果匹配,则元音总数加1
                {
                    countOfVowels += 1;
                }
            }
        }
}
//定义合并函数,将元音数相加
    public void Merge(CountVowels value)
    {
        countOfVowels += value.countOfVowels;
}
//定义结束函数,返回元音总数值
    public SqlInt32 Terminate()
    {
        return new SqlInt32( countOfVowels);
    }
}

--
--9.7.2节示例
--

--创建用户定义聚合函数
CREATE AGGREGATE CountVowels(@input nvarchar(4000)) --创建用户定义聚合函数
RETURNS int
EXTERNAL NAME [TestSQLAssembly].CountVowels --指定聚合函数在程序集中的位置

--使用用户定义聚合函数查询数据
SELECT City,count(City) AS PersonCount,dbo.CountVowels(City) AS CityVowelsCount
FROM Person.Address
GROUP BY City
 

  • 上一篇资讯: 使用C#创建Point类型
  • 下一篇资讯: 在C#中访问inserted表
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师