请教如何将这个合并成一个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 @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
)