请教如何将这个合并成一个sql语句

来源:百度知道 编辑:UC知道 时间:2024/06/21 14:43:48
declare @s varchar(255)
select @s=childColumnList from [column] where columnid=1
declare @sql varchar(500)
set @sql='select * from LR_Article where LR_ArticleColumnID in('+@s+')'
exec (@sql)

能用一条语句表示吗?

谢谢
像老兄说的那样写会提示

在将 varchar 值 '1,24,25,26,29,30' 转换成数据类型 int 时失败。

试了不可以啊

速度最快的方法:
select * from LR_Article a
where exists
(select * from [column] where columnid=1 and a.childColumnList =childColumnList )

用IN需要一个一个去对比,占用时间
而exists用到了index(如果表建立了索引),只要找到一个就返回 真 时间效率高

set @sql='select * from LR_Article where LR_ArticleColumnID in(SELECT childColumnList from [column] where columnid=1 )'
这样就可以了啊

select * from LR_Article where LR_ArticleColumnID in(childColumnList from [column] where columnid=1
)