日期:2014-05-19  浏览次数:20472 次

求解一查询问题,谢谢!
案例分类表:
id       typename
1         一房
2         复式
3         别墅
4         中式
5         欧典
6         单身贵族
....................
案例信息表:
id         casename             casetype
1           上海花园一期     1,3,6
2           龙祥家园             1,4,5,6
3           静安新城             2,5,6
...........................
其中:casetype数据类型为text
现要求:
比如已知:案例分类id=1,
查询案例信息结果:
1           上海花园一期     1,3,6
2           龙祥家园             1,4,5,6
比如已知:案例分类id=5,
查询案例信息结果:
2           龙祥家园             1,4,5,6
3           静安新城             2,5,6


------解决方案--------------------
select * from tb where charindex( ',1, ' , ', ' + casetype + ', ')
------解决方案--------------------
Create Table TEST
(id Int,
casename Nvarchar(10),
casetype Varchar(1000))
Insert TEST Select 1, N '上海花园一期 ', '1,3,6 '
Union All Select 2, N '龙祥家园 ', '1,4,5,6 '
Union All Select 3, N '静安新城 ', '2,5,6 '
GO
--方法一
Select * From TEST Where ', '+ casetype + ', ' Like '%,1,% '
--方法二
Select * From TEST Where CharIndex( ',1, ', ', '+ casetype + ', ') > 0
GO
Drop Table TEST
--Result
/*
id casename casetype
1 上海花园一期 1,3,6
2 龙祥家园 1,4,5,6
*/