我是论坛和SQL的新手,我希望这是一个容易回答的问题。我正在使用Oracle数据库,我想通过搜索公司名称字符串中的前10个左右字符来搜索表中的重复公司。
例如:如果我在表格中单独列出了'ABC Corp'
,'ABC Co'
和'ABC Corporation'
,我希望能够搜索'ABC C'
并让所有公司都返回。由于我正在寻找重复项,我只想返回子字符串多次出现的结果。看起来应该很容易,但我无法让它发挥作用。
有什么建议吗?
由于
答案 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