根据PL / SQL中字符串的前n个字符查找重复项

时间:2015-01-09 22:20:02

标签: oracle plsql duplicate-removal

我是论坛和SQL的新手,我希望这是一个容易回答的问题。我正在使用Oracle数据库,我想通过搜索公司名称字符串中的前10个左右字符来搜索表中的重复公司。

例如:如果我在表格中单独列出了'ABC Corp''ABC Co''ABC Corporation',我希望能够搜索'ABC C'并让所有公司都返回。由于我正在寻找重复项,我只想返回子字符串多次出现的结果。看起来应该很容易,但我无法让它发挥作用。

有什么建议吗?

由于

1 个答案:

答案 0 :(得分:2)

这将为您提供表格中多次出现的所有子字符串的列表:

select 
  substr(name, 0, 6), 
  count(substr(name, 0, 6)) 
from test
group by substr(name, 0, 6)
having count(substr(name, 0, 6)) > 1

并返回其子字符串出现多次的公司列表:

select 
  name
from test test1
where (
  select count(*) 
  from test 
  where substr(test.name, 0, 6) = substr(test1.name, 0, 6)) > 1