广

MSSQL

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    Sql Server 字符串聚合函数

    2018-05-07 10:25:06 次阅读 稿源:互联网
    零七网广告
    全网推广平台,软文发布
    如下表:AggregationTable
    IdName
    1
    2
    1
    1
    2

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

    IdName
    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

    结果为:

    IdName
    1赵孙李
    2钱周

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七网广告
    零七网广告
    零七网广告
    零七网广告