日期:2014-05-18  浏览次数:20498 次

请教一select语句
表A   有一个字段     field1   类型为   vchar(50)
field1
1,2,3
1,3,4
2,5,1
2,4,5
5,6,7,8
...
表B   有字段   field2   类型为   int
field2
1
2
3
4
。。。
现在我想在表A中查询所有包含表B中field2=1的记录
谢谢各位了。语句越简单、越易懂越好。


------解决方案--------------------
Select A.* From A Inner Join B
On CharIndex( ', ' + Cast(B.field2 As Varchar) + ', ', ', ' + A.field1 + ', ') > 0
Where B.field2 = 1
------解决方案--------------------
select
a.*
from
表A a,表B b
where
charindex( ', '+rtrim(b.field2)+ ', ', ', '+a.field1+ ', ')> 0
------解决方案--------------------
select * from a where field1 like '%1% '
------解决方案--------------------
select
a.*
from
表A a,表B b
where
charindex( ', '+cast(field2 as varchar(10))+ ', ', ', '+a.field1+ ', ')> 0