sqlserver2008 in的参数传值批量查询 10
比如:select*fromt_userwherenamein('aa','bb','cc')如果查询条件in里面的值要用参数传递进去怎么实现,比如DECLARE@nam...
比如:select * from t_user where name in ('aa','bb','cc')
如果查询条件in里面的值要用参数传递进去怎么实现,比如
DECLARE @name varchar(max)
select * from t_user where name in (@name) 这样的操作。
我自己目前只能通过以下操作实现,大家有更好的方法吗
DECLARE @name varchar(max)
DECLARE @sql varchar(max)
set @sql = 'select * from t_user where name in (' + @name + ')'
exec (@sql) 展开
如果查询条件in里面的值要用参数传递进去怎么实现,比如
DECLARE @name varchar(max)
select * from t_user where name in (@name) 这样的操作。
我自己目前只能通过以下操作实现,大家有更好的方法吗
DECLARE @name varchar(max)
DECLARE @sql varchar(max)
set @sql = 'select * from t_user where name in (' + @name + ')'
exec (@sql) 展开
展开全部
select * from t_user where name in (@name) 这种叫参数化,参数化会被认定为一个字符而不是多个
如果不计效率的话,可以改写为:select * from t_user where ','+@name+',' like '%,'+name+',%'
如果不计效率的话,可以改写为:select * from t_user where ','+@name+',' like '%,'+name+',%'
更多追问追答
追问
@name值的结构要怎么构建
set @name = '''aa'',''bb'',''cc''' 这样是不行的
追答
正常构建,不必拼接单引号set @name = 'aa,bb,cc'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询