Field1
其中有值 183872 但以下查询不返回任何内容
select *
from table1
where field1 in ('Abbott,Christina D - 183872')
Field1
其中有值 183872 但以下查询不返回任何内容
select *
from table1
where field1 in ('Abbott,Christina D - 183872')
那不是in
目的。你需要使用like
. 另外, field1 是数字字段吗?如果是这样,您应该需要转换/转换为字符串:
select *
from table1
where 'Abbott,Christina D - 183872' like '%' + cast(field1 as varchar(10)) + '%'
这是因为in
并不意味着“值包含在以下字符串中”,而是表示“值包含在以下一组值中”。
SQLServer 工作正常。
为了使查询正常工作,它必须类似于
select *
from table1
where field1 in ('183872','22244','2224455')
您可以执行以下操作
select *
from table1
where field1 like '%183872%'
这将带回所有包含 183872 的记录。
如另一个答案中所述,IN 用于针对一组值进行测试。
SELECT * FROM CUSTOMERS
WHERE COUNTRY IN ('USA','CANADA','MEXICO');
您可以使用 CHARINDEX() 来查找一个字符串在另一个字符串中的位置。
select * from table1
where CHARINDEX(field1,'Abbott,Christina D - 183872') > 0