尝试在like
字符串比较中使用四个通配符来解决问题。
select 1 where '%'+field1+'%' not like '%'+field2+'%'
这没有意义吗?从左到右工作,field1不能存在于'%' + field2 +'%'中,但由于通配符可以是任何东西并不意味着它总是存在?声明中的任何通配符都不相关吗?
在我的情况下,我试图找到field1
(自由文本字段)在field2
(已定义列表)的值中不存在的位置。
目前正在使用
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
...
在那里返回的值中,唯一存在问题的是Place 6b记录。这应该与field2记录匹配,因此不应返回。
为了纠正这个问题,我尝试改为;
and REPLACE(field1, ' ', '') not like REPLACE(field2, ' ', '')
但是这删除了应该返回的第一个结果(Place 6,Place)。
答案 0 :(得分:0)
向field1添加通配符毫无意义。当您使用whilcards时,与在y列中搜索模式x相同。向正在搜索的列添加whildcards并不会改变任何内容。