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,'') 
     
    程序员的基础教程:菜鸟程序员
  • 相关阅读:
    day84
    模型层之单表操作
    Django的模板层
    Django框架导读
    创建Django项目
    名称空间2.0path
    js基础之BOM和DOM
    LG5003 跳舞的线
    20191003 「HZOJ NOIP2019 Round #8」20191003模拟
    LG3092 「USACO2013NOV」No Change 状压DP
  • 原文地址:https://www.cnblogs.com/guohu/p/5315740.html
Copyright © 2011-2022 走看看