例如 我查出一串字符 结果如下
'APR-11,APR12,APR06,APR-11,APR12,APR06'
如何去除重复的 只保留一个
'APR-11,APR12,APR06,APR-11,APR12,APR06'
如何去除重复的 只保留一个
解决方案 »
- 安装mysql后为啥运行不了(请教各位大虾)
- group by 分组的详细点的讲解
- sql server 2005 如何建立本地服务器
- 自增长字段是主键,而且还有关联,如何用sql语句导入
- 表名为参数的函数该怎么写,以下代码该怎么改?
- 数据库周期性断开链接导致网站无法访问,是什么原因?
- 请问:怎样用sql查询语句得到sqlserver表中每条记录的编号,就像查询分析器里得到的记录前面显示的编号那样!!1
- 再请教全月加权平均计算
- 时间的查询
- 求一条 复杂的 不重复查询
- 春暖花开,齐膝马裤妹纸跪求关于MSQL文件分组问题
- SQL Server启动时向指定表里面添加数据,有时成功有时失败(知道咱们SQL 板块大神多)
select @ret = 'APR-11,APR12,APR06,APR-11,APR12,APR06'select distinct name=substring(@ret,number,charindex(',',@ret+',',number)-number)
from master..spt_values
where number<=len(@ret) and type='P'
and substring(','+@ret,number,1)=','
--------------------------
APR06
APR-11
APR12
create function GetDistinct(@str varchar(1000))
returns varchar(1000)
as
begin
declare @temp varchar(1000)
while(charindex(','+substring(@str,1,charindex(',',@str)-1)+',',','+isnull(@temp,'')+',')=0)
begin
set @temp=isnull(@temp+',','')+substring(@str,1,charindex(',',@str)-1)
set @str=substring(@str,charindex(',',@str)+1,len(@str))
end
return @temp
end
goselect dbo.getdistinct('APR-11,APR12,APR06,APR-11,APR12,APR06')
--结果:
--------------------------
APR-11,APR12,APR06
select @ret = 'APR-11,APR12,APR06,APR-11,APR12,APR06'select @ret = 'select '''+replace(@ret,',',''' union select ''')+''''exec(@ret)
----------------------
APR06
APR-11
APR12
declare @str varchar(8000)
declare @ret varchar(8000),@return varchar(8000)select @str = 'APR-11,APR12,APR06,APR-11,APR12,APR06'select @str = @str+','while charindex(',',@str) > 0
begin
select @ret = substring(@str,1,charindex(',',@str)-1)
select @return = isnull(@return+',','')+@ret select @str = replace(@str,@ret+',','')
end select @return
---------------------------
APR-11,APR12,APR06