2016-08-01 6 views
0

다음과 같이 테이블에 여러 레코드가 있습니다. 각 레코드는 @로 분리 된 여러 항목을 보유합니다.오라클의 같은 조건에서 특정 문자를 제외하는 방법

record1 - 123.45.56:ABCD:789:E @ 1011.1213.1415:FGHI:1617:J @ 
record2 - 123.45.56:ABCD:1617:E @ 1011.1213.1415:FGHI:12345:J @ 

나는 SQL 쿼리를 기반으로 다른 프로젝트/서비스에 인수를 전달할 나에게 출력을 보내야합니다. 나는 다음과 같은 인수를 보내는 경우

는 지금, 그것은 나에게 잘못 출력이 신기록 때문에 와일드 카드 문자의 적절한 출력으로 기록이 모두 인식

123.45.56:*:1617 

을 제공합니다. 하지만 내 요구 사항에 따라 record1은 한 항목에 123.45.56, 다른 항목에 1617이 있으므로 record2 만 적절합니다.

이와 같은 잘못된 조건을 무시하는 식을 만드는 방법이 있습니까?

쿼리를 구성 할 수 없으므로 변경할 수 없습니다. 나를위한 유일한 방법은 내가 인자로 보낼 수있는 표현을 조정하는 것입니다.

+0

을 나는 서비스에 입력을 전달하고 자바 코드를 통해. 이 서비스는 최대 절전 모드를 사용하여 쿼리를 구성합니다. 이 서비스는 내 상태를 그대로 유지하고 쿼리를 생성합니다. 오라클이 와일드 카드와 패턴 매칭을 지원한다는 것을 알았습니다. 나는 이것을 달성하기 위해 일부 와일드 카드/패턴 일치 문자를 전달할 수 있는지 확인하고 있습니다. – Bharani

+0

선택을 고유하게 만드는 문자를 선택하지 않는 이유는 무엇입니까? 당신처럼 사용할 수있는 같은 '123.45.56 : * 12345 : J *'.. 이것은 두 번째 레코드를 얻을 것이다. – XING

답변

0

일치하는 패턴이 첫 번째 레코드에만 일치하고 두 번째 레코드는 일치하지 않는 정도로 지정해야합니다.

당신이 시도 할 수 :

SELECT * 
FROM yourTable 
WHERE col LIKE '123.45.56:' AND col LIKE '1617:J @' 
관련 문제