首页 新闻 会员 周边

存储过程中的in 中的逗号怎么解决

0
悬赏园豆:10 [已解决问题] 解决于 2017-08-28 16:57

一般情况下,存储过程中的sql语句使用了 in ,关键in的这个田条件本身就有逗号,如下,调用时该如何处理

select * from A  where code in('0,1','0,2') 

郎中令的主页 郎中令 | 菜鸟二级 | 园豆:244
提问于:2017-08-19 23:13
< >
分享
最佳答案
1

sql语句最外面加一个 exec('')  其语句为(where a in('+@str+'))然后在Net中调用即可

郎中令 | 菜鸟二级 |园豆:244 | 2017-08-28 16:56
其他回答(1)
0

怎么处理取决于你传进存储过程的参数值啊!!

如果传入的是类似 ‘a’,'b','c' 这样一个字符串的话,直接放到in的条件中就可以。

select * from A  where code in(@param) ;

如果传入的是类似 a,b,c 这样的就,就要处理成带单引号的形式(下面是基于SQLSERVER的一个例子)。

select * from A  where code in('''' + REPLACE(@param,',',''',''') + '''');

具体情况要具体分析!!

收获园豆:5
Catcher8 | 园豆:364 (菜鸟二级) | 2017-08-20 09:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册