1. create or replace function remove_same_string(oldStr varchar2, sign varchar2) return varchar2 is
  2.  
  3. /****************************************************
  4. ** Oracle去掉重复字符串
  5. ** 函数名称:RemoveSameStr
  6. ** 参 数:【名称】 【类型 】 【说明】
  7. ** oldStr varchar2 要处理的字符串
  8. ** sign varchar2 字符串分隔符
  9. ** 返 回 值:Result varchar2 不包含重复子串的记录
  10. ****************************************************/
  11. str varchar2(2000);
  12. currentIndex number;
  13. startIndex number;
  14. endIndex number;
  15.  
  16. type str_type is table of varchar2(30) index by binary_integer;
  17. arr str_type;
  18. Result varchar2(1000);
  19. begin
  20. -- 空字符串
  21. if oldStr is null then
  22. return('');
  23. end if;
  24.  
  25. --字符串太长
  26. if length(oldStr) > 2000 then
  27. return(oldStr);
  28. end if;
  29. str := oldStr;
  30.  
  31. currentIndex := 0;
  32. startIndex := 0;
  33.  
  34. loop
  35. currentIndex := currentIndex + 1;
  36. endIndex := instr(str, sign, 1, currentIndex);
  37. if (endIndex <= 0) then
  38. exit;
  39. end if;
  40.  
  41. arr(currentIndex) := trim(substr(str, startIndex + 1, endIndex - startIndex - 1));
  42. startIndex := endIndex;
  43. end loop;
  44.  
  45. --取最后一个字符串:
  46. arr(currentIndex) := substr(str, startIndex + 1, length(str));
  47.  
  48. --去掉重复出现的字符串:
  49. for i in 1 .. currentIndex - 1 loop
  50. for j in i + 1 .. currentIndex loop
  51. if arr(i) = arr(j) then
  52. arr(j) := '';
  53. end if;
  54. end loop;
  55. end loop;
  56.  
  57. str := '';
  58. for i in 1 .. currentIndex loop
  59. if arr(i) is not null then
  60. str := str || sign || arr(i);
  61. --数组置空:
  62. arr(i) := '';
  63. end if;
  64. end loop;
  65.  
  66. --去掉前面的标识符:
  67. Result := substr(str, 2, length(str));
  68.  
  69. return(Result);
  70. end remove_same_string;

Oracle 去掉重复字符串的更多相关文章

  1. oracle去掉重复记录语句

    oracle去掉重复记录语句   比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 select p1.*   from persons  p1 ...

  2. oracle如何去除字符串中的重复字符

    create or replace function remove_rame_string(oldStr varchar2, sign varchar2) return varchar2 is /** ...

  3. 输入一个字符串,去掉重复的字符,并按ASCII值排序-华为机试

    import java.util.Scanner; //输入字符串,去掉重复的字符,并按ASSIC码值排序 public class quChong { public static void main ...

  4. 字符串数组(String []) 去掉重复值的方法

    public class Demo { /** * 去掉重复值 */ public static void main(String[] args) { String test = "100, ...

  5. 伪列:Oracle显示查询结果前几条记录用rownum<=。去掉重复记录,保留最早录入记录:取出最小ROWID

    显示6-10行记录: 去掉重复记录,保留最早录入记录:取出最小ROWID SELECT deptno,dname,loc,min(ROWID) FROM dept GROUP BY deptno,dn ...

  6. $.unique() 对象组成的数组去掉重复对象

    发现一件事,一个完全由对象组成的数组,用$.unique()方法去掉重复的时候不管用 var arr = [{text:'第一个',value:'1'},{text:'第二个',value:'2'}, ...

  7. js 去掉重复数组

    js去掉重复数组 重点一:字符串转数组  strArr.join(',') 重点二:做循环数组删除的时候,每次循环就把color[i] 去对比i之前所有数组color组合起来的字符串 比如 : i=1 ...

  8. WPF中使用Hashtable剔除重复字符串(比如电话号码)

    原文:WPF中使用Hashtable剔除重复字符串(比如电话号码) 本文中的输入框中的字符串是逗号隔开的,你可以换成其他特别的字符串.本篇中的亮点:1. 里面有一个玻璃样式按钮,用XAML制作2. W ...

  9. aabccd统计每个字符出现的次数,结果显示{ a: 2, b: 1, c: 2, d: 1 };去掉重复的字符,使结果显示abcd

    遍历字符串的方式和遍历数组的方式有点相似,或者说就是相同的.在学习数组的遍历方法之前,可以通过for循环去遍历数组,同样,字符串也可以:字符串跟数组都有一个length的属性.下面代码奉上,个人思路! ...

随机推荐

  1. line-box(转)

    inline-block是什么? Inline-block是元素display属性的一个值.这个名字的由来是因为,display设置这个值的元素,兼具行内元素( inline elements)跟块级 ...

  2. 伸展树 Splay 模板

    学习Splay的时候参考了很多不同的资料,然而参考资料太杂的后果就是模板调出来一直都有问题,尤其是最后发现网上找的各种资料均有不同程度的错误. 好在啃了几天之后终于算是啃下来了. Splay也算是平衡 ...

  3. python赋值和拷贝----一切皆对象,参数皆引用

    摘要: 1 python中的一切事物皆为对象,并且规定参数的传递都是对象的引用. 2  python参数传递都是"传对象引用"方式.实际上相当于c++中传值和传引用的结合. 3 如 ...

  4. bootstrap中的居左和居右

    1.pull-left和pull-right 2.text-left.text-center和text-right

  5. CSS实现三角形方法二--border+content

    方法说明: 1.将一个div块的内容设置为空(content=" "), 2.设置它的边框(上下左右)颜色为透明(transparent), 3.设置它的左侧边框颜色为pink. ...

  6. [iOS]C语言技术视频-01-变量的定义

    下载地址: 链接: http://pan.baidu.com/s/1eQJaVwY 密码: c7j8

  7. ibatis一对多 数据库设计及实现

    iBatis的多表关联. ibatis的表关联,和数据库语句无关,是在Java程序中,把若干语句的结果关联到一起.这种关联形式,虽然在大数据量时是很奢侈的行为,但是看起来很干净,用起来也很方便. 这里 ...

  8. Android中使用http协议访问网络

    HTTP协议的工作原理:客户端向服务器端发送http请求,服务器端收到请求后返回一下数据给客户端,客户端接受消息并进行解析. 在Android中发送http请求的方式有两种,第一种是通过HttpURL ...

  9. Github上的600多个iOS开源类库

    Github上的600多个iOS开源类库,入下图所示,里面有很多资源,学习积累的好资源 地址:http://github.ibireme.com/github/list/ios/

  10. leetcode--001 max point on a line

    package leetcode; import java.util.HashMap; class Point{ int x; int y; Point(){ x=0; y=0; } Point(in ...