zoukankan      html  css  js  c++  java
  • sql 聚合函数

    Sql Server 字符串聚合函数

    ql Server 有如下几种聚合函数SUM、AVG、COUNT、COUNT(*)、MAX 和 MIN,但是这些函数都只能聚合数值类型,无法聚合字符串。

    如下表:AggregationTable

    Id Name
    1
    2
    1
    1
    2

    如果想得到下图的聚合结果

    Id Name
    1 赵孙李
    2 钱周

    利用SUM、AVG、COUNT、COUNT(*)、MAX 和 MIN是无法做到的。因为这些都是对数值的聚合。不过我们可以通过自定义函数的方式来解决这个问题。
    1.首先建立测试表,并插入测试数据: 

    复制代码代码如下:

    create table AggregationTable(Id int, [Name] varchar(10)) 
    go 
    insert into AggregationTable 
        select 1,'赵' union all 
        select 2,'钱' union all 
        select 1,'孙' union all 
        select 1,'李' union all 
        select 2,'周' 
    go


    2.创建自定义字符串聚合函数

    复制代码代码如下:

    Create FUNCTION AggregateString 

        @Id int 

    RETURNS varchar(1024) 
    AS 
    BEGIN 
        declare @Str varchar(1024) 
        set @Str = '' 
        select @Str = @Str + [Name] from AggregationTable 
        where [Id] = @Id 
        return @Str 
    END 
    GO


    3.执行下面的语句,并查看结果 

    复制代码代码如下:

    select dbo.AggregateString(Id),Id from AggregationTable 
    group by Id 

    结果为:

    Id Name
    1 赵孙李
    2 钱周

    4>通过xml操作
     select stuff((select ','+title from tb for xml path('')),1,1,'') 
     
    程序员的基础教程:菜鸟程序员
  • 相关阅读:
    总结php删除html标签和标签内的内容的方法
    php正则验证手机、邮箱
    php正则匹配到字符串里面的a标签
    PHP 使用try catch,捕获异常
    Apache漏洞利用与安全加固实例分析
    php json接口demo
    PHP 把MYSQL重复ID 二维数组重组为三维数组
    文件扩展关联命令(assoc)
    修改文件属性(attrib)
    文件比较命令(fc)
  • 原文地址:https://www.cnblogs.com/guohu/p/5315740.html
Copyright © 2011-2022 走看看