--功能:提供字符串的替代聚合函数 --说明:例如,将下列数据 --test_id test_value -------------------- 'a' ',,' 'a' ',' 'b' ',,' 'b' ',,' 'c' '' 'c' '' --转换成test_vlaue列聚合后的函数,且聚合后的字符串中的值不重复 --test_id test_value -------------------- 'a' ',,,' 'b' ',,,,' 'c' ',' --代码-------------------------------------------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() ) returns varchar() as begin --字符串聚合-------------------------START declare @s varchar() set @s = '' select @s = @s + test_value + ',' from test_a where test_id = @test_id --字符串聚合-------------------------END --去除重复值-------------------------START declare @value varchar()--存储第一个逗号前的值 declare @result varchar()--存储唯一值的中间字符串 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(), test_value varchar() ) insert into test_a select 'a',',,' union all select 'a',',' union all select 'b',',,' union all select 'b',',,' union all select 'c','' union all select 'c','' select test_id, test_value = dbo.merge(test_id) from test_a group by test_id
推荐整理分享字符串聚合函数(去除重复值)(字符串合并函数),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:字符串聚类,聚合函数字符串合并,字符串聚类算法,聚合函数字符串合并,字符串聚合函数怎么写,字符串聚合函数怎么写,字符串聚合函数有哪些,字符串聚合函数是什么,内容如对您有帮助,希望把文章链接给更多的朋友!
SQL Server 同步复制技术 一、准备工作:1.建立一个WINDOWS用户,设置为管理员权限,并设置密码,作为发布快照文件的有效访问用户。2.在SQLSERVER下实现发布服务器和订阅服
SqlServer 链接服务器用法 查询资料后知道有sp_addlinkedserver这个系统存储过程,可通过ODBC连接MySql,于是下载ODBC驱动,这个可通过MySql官网得到,地址:
sql rollup用法 小计汇总 这里介绍sqlserver里面的一个使用实例:CREATETABLEtb(provincenvarchar(),citynvarchar(),scoreint)INSERTtbSELECT'陕西','西安',3UNIONALLSELECT'陕西','安康',4UNIONALLSELECT'