当前位置:数据库 > SQLServer >>

sql删除字符串中重复字符

现在需要对后面电话号码相同的记录进行过滤,删除只剩下一条。

 代码如下 复制代码

20051218125830_5988312367.vox
20051218125850_5988312367.vox
20051218135407_5932733345.vox
20051218175857_5923922228.vox
20051218180045_5923922228.vox

过滤后剩下的记录为:
20051218125830_5988312367.vox
20051218135407_5932733345.vox
20051218175857_5923922228.vox

解决办法

创建一个新表table_test  把过滤后的记录放进去。 再 rename 该表.
z 是该字段

 代码如下 复制代码
create table table_test  as (select min(z) z  from c  group by substr(z, 16) )


其它一个方法

 代码如下 复制代码

---去除字符串中重?偷闹岛??br />  create function StringRemove(@str nvarchar(2000))
 returns varchar(2000)
 as
 begin
     declare @result nvarchar(2000),@temp nvarchar(1000)
     set @result=''
     set @temp=''
     while(charindex(',',@str)<>0)
         begin
             set @temp=substring(@str,1,charindex(',',@str))  
             if(charindex(@temp,@result)<=0)          
                 set @result=@result+@temp      
             set @str=stuff(@str,1,charindex(',',@str),'')
         end
     return @result
 end
 GO
 --('?T聚文','?T','?T聚文','1','23','1')
 
 --?y?
 select dbo.StringRemove('?T聚文,?T,?T聚文,1,23,1')

补充:数据库,Mssql
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,