sql存储过程的难题 急待解决
有一表A  
id int     f_id varchar(50)
1          1,2,3
有一表B
b_id int   b_name varchar(50)
1          aaa
2          bbb
3          ccc
4          ddd
要写一存储过程  返回的是A表中f_id中对应的B表中的记录
我是这样写的
1.
Declare @A_fid varchar(50)
Select @A_fid=f_id from A where id=1
Select * from B where b_id in(@A_id)  错误!
2.
Declare @A_fid varchar(50)
Declare @str varchar(2000)
Select @A_fid=f_id from A where id=1
Set @str='select * from B where b_id in('+@A_fid+')'
Exec @str  还是错误..  寻求解决办法...
------解决方案--------------------Exec (@str)
------解决方案--------------------是  b_id in(@A_id)和 b_id in( '+@A_fid+ ') '  
有问题,因为整型的id和自负型无法匹配,即使强制类型转换好像也会出现问题
如果b_id in(1,2,3,4,5,6) 好像就没有问题了所以是匹配吃出现了问题
我想到的解决方法如下 供参考
Declare @A_fid varchar(50)  
Select @A_fid=f_id from A where id=1  
Select * from B where @A_id like '%'+cast(b_id as varchar)+'%'
如果你的@A_id 以逗号分割数字 上面的方法匹配id数字应该没有问题
------解决方案--------------------Exec (@str)