首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL有关问题求教

2012-09-24 
SQL问题求教做了一个计算机的表tab1--------------------------------------------computerid(计算机编号

SQL问题求教
做了一个计算机的表tab1
--------------------------------------------
computerid(计算机编号 int ) computerpart(计算机配件 varchar)
1 1,2,3
5 205,100,52
--------------------------------------------  
配件表tab2
--------------------------------------------
partid(计算机配件ID INT\INDEX\KEY\NOT NULL) partname(名称 varchar)
1 philips display
2 two birds keyboard
3 westdata harddisk
--------------------------------------------
现在我想的到计算机1的配件表,于是
我select partname from tab2 where id in (select computerpart from tab1 where id=1)  
语句执行得到的结果如下
select partname from tab2 where id in ('1,2,3')
但提示不能转换INT到varchar.象这种问题该怎么处理?

[解决办法]
select b.partname from tab1 a,tb2 b
 where id=1 and charindex(','+rtrim(b.partid)+',',','+a.computerpart+',')>0
[解决办法]

SQL code
select partname from tab2 where charindex(+','ltrim(id)+',', ','+'1,2,3'+',')>0
[解决办法]
这个表设计不合理啊,
computerid(计算机编号 int ) computerpart(计算机配件 int)
1 1
1 2
1 3
5 205
5 100
5 52
--------------------------------------------
配件表tab2
--------------------------------------------
partid(计算机配件ID INT\INDEX\KEY\NOT NULL) partname(名称 varchar)
1 philips display
2 two birds keyboard
3 westdata harddisk


我select partname from tab2 where id in (select computerpart from tab1 where id=1)

热点排行