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, 장소)가 삭제되었습니다.
각 필드에 예 또는 두 가지 데이터를 제공 할 수 있습니까? 정확히 무엇을 성취하려고합니까? –
NP, 내 현재 사용하는 부분을 참조하십시오. – windowskm
예제 행 (감사합니다)을 볼 수 있지만 지나치게 단순 해 보입니다. 항목 목록을 표시하지 않고 하나의 항목 만 표시하지만 field2는 "정의 목록"이라고 말합니다. 일치하지 않을 다양한 상황을 보여주기 위해 몇 가지 예를 들려 줄 수 있습니까? –