2014-04-18 4 views
0

like 문자열 비교에서 네 개의 와일드 카드 문자를 사용하여 머리를 쓰려고합니다.비슷한 문자열 비교의 네 개의 와일드 카드

select 1 where '%'+field1+'%' not like '%'+field2+'%' 

이 무의미인가? 왼쪽에서 오른쪽으로 작업하면서 field1은 '%'+ field2 + '%'의 어느 곳에도 존재해서는 안됩니다. 그러나 와일드 카드는 무엇이든 될 수 있기 때문에 항상 존재할 것입니다. 명령문의 와일드 카드 문자 중 어 @ 것이 부적절합니까?

제 경우에는 field2 (정의 된 목록)의 값에 field1 (자유 텍스트 필드)이없는 것을 찾으려고합니다. 현재

select field1, field2, COUNT(1) as 'Count' from filteredNew_address 
where field1 like '%Place%' and field1 LIKE '%[0-9]%' 
and REPLACE(field1, ' ', '') not like REPLACE(field2, ' ', '') 
group by field1, field2 
order by 'count' desc 

를 사용

나는 다음과 같은 결과를 얻을;

field1   field2 
Place 6   Place 
Place 12  Place 24 
Place 4   Place 7 
Place 6b  Place 6 
Place 1   Place 7 
Place 2   Outside Country 
... 

거기에 반환 된 값 중 유일한 문제는 장소 6b 레코드입니다. 이것은 field2 레코드와 일치해야하며 반환되지 않아야합니다.

이것을 수정하려면 다음으로 변경해보십시오.

and REPLACE(field1, ' ', '') not like REPLACE(field2, ' ', '') 

그러나 이렇게하면 반환해야하는 첫 번째 결과 (장소 6, 장소)가 삭제되었습니다.

+0

각 필드에 예 또는 두 가지 데이터를 제공 할 수 있습니까? 정확히 무엇을 성취하려고합니까? –

+0

NP, 내 현재 사용하는 부분을 참조하십시오. – windowskm

+0

예제 행 (감사합니다)을 볼 수 있지만 지나치게 단순 해 보입니다. 항목 목록을 표시하지 않고 하나의 항목 만 표시하지만 field2는 "정의 목록"이라고 말합니다. 일치하지 않을 다양한 상황을 보여주기 위해 몇 가지 예를 들려 줄 수 있습니까? –

답변

0

field1에 와일드 카드를 추가하는 것은 의미가 없습니다. whilcard를 사용할 때 y 열의 x 패턴 검색과 동일합니다. 검색중인 열에 whildcards를 추가해도 아무 것도 변경되지 않습니다.