2015-01-09 9 views
-1

포럼과 SQL에 익숙하지 않아 쉽게 답변 할 수 있기를 바랍니다. 나는 오라클 db와 함께 일하고 있으며 회사 이름 문자열의 처음 10 자 정도만 검색하여 테이블에서 중복 된 회사를 검색하려고합니다.PL/SQL에서 문자열의 첫 번째 n 문자를 기준으로 중복 찾기.

예를 들어

: 나는이 'ABC Corp', 'ABC Co''ABC Corporation' 내 테이블에 별도로 나와있는 경우에, 나는 'ABC C' 검색하고 모든 기업이 반환해야 할 수 있어야합니다. 중복을 찾고 있기 때문에 하위 문자열이 두 번 이상 나타나는 경우에만 결과를 반환하려고합니다. 그것은 꽤 쉬워야하는 것처럼 보이지만, 나는 그것이 작동하도록 할 수 없습니다.

제안 사항?

감사

+1

왜 저장 프로 시저가 필요하다고 생각하십니까? –

+0

당신은 "나는 그것을 작동시킬 수 없다"라고 썼다. StackOverflow는 사람들에게 완성 된 제품을 제공하지 않고 코드 문제를 해결하도록 돕는 것입니다. 문제를 해결하기위한 최선의 시도와 현재 얻고있는 결과에 대한 설명을 업데이트해야합니다. 코드/데이터 형식으로 올바로 형식을 지정하려면 각 줄 앞에 4 칸을 사용하십시오. 행운을 빕니다. – shellter

답변

1

이 당신에게 테이블에서 여러 번 나타나는 모든 문자열의 목록을 가져옵니다

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 
관련 문제