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