求一条SQL语句的判断,该怎么处理

求一条SQL语句的判断
现在在做一个项目的二期开发,但看到他字段里对存储的值是  1,2,4,8,16
这样的方式存储的
比如我现在要判断一下所有包含1,16的有哪些这种怎么写。
暂时没想到很方便的方法,求点思路。
------解决思路----------------------
create table test(name varchar(50))
go
insert into test values('1,2,4,8,16') ,('1,2,4,8,15')
go
select * from test 
go
select * from test 
where ',' + name + ',' like '%,1,%' 
and ',' + name + ',' like '%,16,%'
go
drop table test 
go



(2 行受影响)
name
--------------------------------------------------
1,2,4,8,16
1,2,4,8,15

(2 行受影响)

name
--------------------------------------------------
1,2,4,8,16

(1 行受影响)


------解决思路----------------------
SELECT * 
FROM dbo.TestA 
WHERE CHARINDEX('1,',A+',')>0 AND CHARINDEX('16,',A+',')>0
------解决思路----------------------
4楼的条件,貌似需要修改下。

SELECT * 
FROM TestA 
WHERE CHARINDEX(',1,',   ','+strs+',')>0 AND CHARINDEX(',16,',   ','+strs+',')>0