暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 在字符串中查找重复项。

askTom 2017-04-25
342

问题描述

你好-

如图所示,我有一堆通过报告返回的数字。返回多次出现的数字的最佳方法是什么?

对于ex: 在第一个数据集中,我应该返回11; 在第二个数据集中,我应该返回9和12,依此类推。



2,3,14,13,15,16,17,18,11,6,7,8,1,11,10,5,12,9         11
3,8,17,15,14,9,7,18,16,1,5,4,9,11,13,10,12,12         9,12
3,2,4,5,1,6,16,7,8,12,10,11,9,13,14,16,15,17         16
18,18,18,18,18,18,18,2,18,18,18,18,3,18,18,18,1,18   18
复制


谢谢
文卡特

专家解答

您可以使用您最喜欢的 “csv列表到行” 来获取作为行的值。然后按值分组并返回计数> 1的值:

with vals as (
  select '3,8,17,15,14,9,7,18,16,1,5,4,9,11,13,10,12,12' str from dual
), rws as (
  select regexp_substr(str,'[^,]+', 1, level) v from vals
  connect by regexp_substr(str, '[^,]+', 1, level) is not null
)
  select v from rws
  group  by v 
  having count(*) > 1;

V   
12  
9   
复制

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论