• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    字符串聚合函数(去除重复值)
    --功能:提供字符串的替代聚合函数
    --说明:例如,将下列数据
    --test_id test_value
    --------------------
    'a' '01,03,04'
    'a' '02,04'
    'b' '03,04,08'
    'b' '06,08,09'
    'c' '09'
    'c' '10'
    --转换成test_vlaue列聚合后的函数,且聚合后的字符串中的值不重复

    --test_id test_value
    --------------------
    'a' '01,03,04,02'
    'b' '03,04,08,06,09'
    'c' '09,10'

    --代码-------------------------------------------GO
    GO
    if object_id(N'dbo.merge',N'FN') is not null
    drop function dbo.merge
    GO
    --函数功能:字符串聚合及去除重复值
    create function dbo.merge
    (
    @test_id varchar(50)
    )
    returns varchar(50)
    as
    begin
    --字符串聚合-------------------------START
    declare @s varchar(8000)
    set @s = ''

    select
    @s = @s + test_value + ','
    from test_a
    where test_id = @test_id
    --字符串聚合-------------------------END

    --去除重复值-------------------------START
    declare @value varchar(8000)--存储第一个逗号前的值
    declare @result varchar(8000)--存储唯一值的中间字符串
    set @result = ''

    --有值的场合
    while charindex(',',@s) > 0
    begin
    --取第一个逗号前的值
    set @value = left(@s,charindex(',',@s) -1)

    --第一个逗号前的值没在结果中出现
    if charindex(',' + @value + ',',',' + @result) = 0
    begin
    --加入中间字符串
    set @result = @result + @value + ','
    end

    --去除第一个值以及后面的逗号(剔除法),继续循环判断
    set @s = right(@s,(len(@s) - charindex(',',@s)))
    end

    set @s = @result
    --去除重复值-------------------------END

    return left(@s,len(@s)-1)
    end
    GO

    if object_id(N'test_a',N'U') is not null
    drop table test_a
    GO

    create table test_a
    (
    test_id varchar(50),
    test_value varchar(50)
    )

    insert into test_a
    select 'a','01,03,04' union all
    select 'a','02,04' union all
    select 'b','03,04,08' union all
    select 'b','06,08,09' union all
    select 'c','09' union all
    select 'c','10'

    select
    test_id,
    test_value = dbo.merge(test_id)
    from test_a
    group by test_id
    上一篇:监视SQLServer数据库镜像[图文]
    下一篇:SQL Server 2005 同步复制技术
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    字符串聚合函数(去除重复值) 字符串,聚合,函数,去除,