求一条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
现在在做一个项目的二期开发,但看到他字段里对存储的值是 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