sql去重复函数相关
来源:互联网 发布:知乎 一天背1000个单词 编辑:程序博客网 时间:2024/05/17 22:26
关于sql中对于一个字符串去重复的实现方式
目录
[TOC]
- 对一个字符串进行处理但是存在重复的问题
- 编写一个SQl函数来实现我们所需要的效果
相关思路
- 思考
我应该怎样来实现这个功能
- 如何实现
- 编写测试代码
- 测试所需要的效果
- 如果有问题从新开始
关于SQL中的函数的一些扩展
sql中有 字符串函数,数字函数,日期函数,系统函数,
以及自定义函数 标量值函数,表值函数 相关介绍–> 博客园
第一段代码
create function StringRemove(@str nvarchar(2000)) returns varchar(2000) as begin declare @result nvarchar(max),@temp nvarchar(max) 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
第二段代码
CREATE functiondeclare @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) > 0begin select @ret = substring(@str,1,charindex(',',@str)-1) select @return = isnull(@return+',','')+@ret select @str = replace(@str,@ret+',','')end select @return
讲讲我对代码的理解
上面的代码
创建函数 接收一个字符串 返回一个字符串
然后在其中进行处理
定义一个 结果值的变量 @result
一个临时变量 @tem
charindex(';')
函数 接收一个char 字符返回找到的索引 substring()
截取从传入的参数 从第一个位置到首次出现’;’的位置然后放到 临时变量中去@temp
如果 charindex(@temp,@result)<=0
表示找到他自己了
保存到 结果变量@result
并且将第一个’;’ 替换成” 空格
然后返回就可以了
以上 就是我所理解的
函数是在网上看到的
其中的’;’ 可以替换
比如: ‘a,ab,c,a,dd,cc’
是这种的话就讲’;’ 替换为’,’
其他也是如此
使用的时候就直接dbo.StringRemove('字符串')
关于第二段代码
其实具体的思路都差不多了关键在于多思考!
0 0
- sql去重复函数相关
- SQL去重复数据
- sql去重复
- sql去重复
- SQL去重复
- SQL去重复查询
- sql 去重复
- sql 去重复语句
- sql去重复
- Sql去重复记录
- sql去出重复数据
- SQL查询,去重复记录
- sql去重复的行
- sql server 去重复数据
- sql distinct 去重复 (mysql)
- db2 去重复sql----笔记
- 窗口函数 row_number 去重复
- sql 语句去重复字段记录
- 终会用的到的——小整理(二)
- effective C++ 第五章 复习笔记
- (三十)java多线程一
- 浅谈页面刷新导致重复提交问题
- 【c语言】企业发放的奖金根据利润提成。
- sql去重复函数相关
- 我的java学习之路疑点小结
- NS3实例分析(2)-- first.cc
- 【c语言】 输入4个整数,要求按由小到大的顺序输出
- 【c语言】有4个圆塔。圆心分别为(2,2),(-2,2),(-2,-2),(2,-2),圆半径为1,这4个塔的高度为10, 塔以外无建筑物,今输入任意一点的坐标,求该点的建筑高度(塔外高度为0)
- HDU 4393 Throw nails
- ACM--steps--dyx--5.1.4--find the most comfortable road
- iOS开发~制作同时支持armv7,armv7s,arm64,i386,x86
- 有窗口的编程