declare @t table(id int,state varchar(10))
insert @t select 1,'1,5,17'
union all select 2,'2,8,10,17'
union all select 3,'2,5'
select * from @t
where patindex('%,5,%',','+state+',')>0
--第一种方法:用动态SQL语句
declare @s varchar(1000),@值列表 varchar(1000)
set @值列表= '''aa'',''bb'',''cc'''
set @s='select * from 表名 where 字段 in (' + @值列表 + ')'
print @s
exec (@s)
--第二种方法:使用charindex
declare @值列表 varchar(1000)
set @值列表='aa,bb,cc'
select * from 表名 where charindex(',' + 字段 + ',',',' + @值列表 + ',') > 0