比如
declare @sss varchar(200)
set @sss = 'select Cname from characters where CharacterID in(select FdIds from characters c2 where Cname = ''strife'')'我想运行@sss,如何做到?还有个问题直接运行
select Cname from characters where CharacterID in(select FdIds from characters c2 where Cname = 'strife')
会有错,因为CharacterID是整型,而FdIds是一个字符串‘1,2,3’这样的,应该能明白我的意思 ,如果想得到我想要的结果怎么做好?请指教。
declare @sss varchar(200)
set @sss = 'select Cname from characters where CharacterID in(select FdIds from characters c2 where Cname = ''strife'')'我想运行@sss,如何做到?还有个问题直接运行
select Cname from characters where CharacterID in(select FdIds from characters c2 where Cname = 'strife')
会有错,因为CharacterID是整型,而FdIds是一个字符串‘1,2,3’这样的,应该能明白我的意思 ,如果想得到我想要的结果怎么做好?请指教。
set @sss = 'select Cname from characters where CharacterID in(select FdIds from characters c2 where Cname = ''strife'')'
exec(@sss)
from characters
where (select ','+ltrim(FdIds)+',' from characters c2 where Cname = 'strife') like '%,'+CharacterID+',%'
根据钻石给的方法加了个convert就可以了
这样declare @sss varchar(200)
set @sss = 'select Cname from characters where CharacterID in(select FdIds from characters c2 where Cname = ''strife'')' set @sss = 'select Cname from characters where (select '',''+FdIds+'','' from characters c2 where Cname =''strife'') like ''%,''+convert(varchar(20),CharacterID)+'',%'''print @sss
exec(@sss)
可以运行了,多谢!