日期:2014-05-17  浏览次数:20768 次

数据库小白来问个sql问题
作个课程表查询遇到了个问题
如何对int和string进行查询呢? 
class表里面有个classid是int型的 写的是‘1’‘2‘’3‘这样

course表里面有个classids是varchar2型的 写的是'1,2,3'这样 也就是表示这个课都有哪些班上

老师说那个class可以用in关键字来在classids中查找 但是他俩类型不同怎么用in查找啊 而且还有逗号呢 费解 求解

------解决方案--------------------
course表里面有个classids是varchar2型的,可以用like,不过这个性能堪忧:

Where classids like '%1%'
------解决方案--------------------
select * from class where classid in('1','2','3')
course表按classid查的话,用like,应该可以满足你的需求? 
你这个问题问的,也没说明白你要的功能是怎么样的
------解决方案--------------------
declare @Sql varchar(3000)
set @Sql = 'select * from class where classid in (' + (select classids from course where name = '英语') + ')'
exec @Sql
------解决方案--------------------
结合1楼的like 和二楼的 in 你的答案已经出来了.