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)
展开
 我来答
szm341
2013-11-15 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5183万
展开全部
select * from t_user where name in (@name) 这种叫参数化,参数化会被认定为一个字符而不是多个
如果不计效率的话,可以改写为:select * from t_user where ','+@name+',' like '%,'+name+',%'
更多追问追答
追问
@name值的结构要怎么构建
set @name = '''aa'',''bb'',''cc''' 这样是不行的
追答
正常构建,不必拼接单引号set @name = 'aa,bb,cc'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式