sql 传入参数为逗号分隔的字符串处理方法
2017-05-10 17:47
232 查看
写了个存储过程,中间用到了类似这种写法
其中'1,2,3'是从外面传进来的参数,就这样执行报错:'1,2,3'转换为int类型出错,因为ID是int类型的
想了个比较笨的解决方法:思路-循环将传进来的参数'1,2,3'分割并转换为int然后存储到临时表,之后在In里面Select ID这样就不报错了
结果:
欢迎指正
Select * From User Where ID In('1,2,3')
其中'1,2,3'是从外面传进来的参数,就这样执行报错:'1,2,3'转换为int类型出错,因为ID是int类型的
想了个比较笨的解决方法:思路-循环将传进来的参数'1,2,3'分割并转换为int然后存储到临时表,之后在In里面Select ID这样就不报错了
Declare @ID Nvarchar(500); Set @ID='4,11064'; Declare @table_UserID Table ( ID Int ) While(CHARINDEX(',',@ID)<>0) Begin Insert Into @table_UserID(ID) Values(CONVERT(Int,Substring(@ID,1,CHARINDEX(',',@ID)-1))); Set @ID=STUFF(@ID,1,CHARINDEX(',',@ID),''); End Insert Into @table_UserID (ID) Values(CONVERT(Int,@ID)); Select * From @table_UserID
Select * From User Where ID In(Select ID From @table_User)
结果:
欢迎指正
相关文章推荐
- 在SQL中参数值超过8000(TEXT类型)的处理方法,以"逗号"分隔的字符串
- 在SQL中参数值超过8000(TEXT类型)的处理方法,以"逗号"分隔的字符串
- 前台传入多个参数(数组格式),拼接成字符串中间用逗号隔开,传入到sql中用in查询.
- Sql将逗号分隔的字符串分拆成表格的方法
- 关于 字符串中的单引号, 在sql存储过程中的传输总结; 逗号分隔的多个变量提取方法.
- sql查询用逗号分隔的字符串参数,在逗号分隔的字段中查询
- sql中将分隔字符串转为临时表的方法
- sql把逗号分隔的字符串拆成临时表(转:http://www.cnblogs.com/eleven11/archive/2010/08/17/1800901.html)
- 第九节 C# 可选参数、重构—提起方法、局部变量、作用域、常用字符串的处理方法
- Sql 传varchar参数(逗号分隔)转成int
- SQL 中传数组参数的变通方法:通过字符串分拆实现
- sql把逗号分隔的字符串拆成临时表
- SQL中以逗号分隔的字符串的判断
- SQLSERVER 根据传入的参数拼接sql语句字符串,反馈结果集
- 使用逗号分隔含有ID的输入参数(sql 查询)
- sql将列转换为以逗号分隔的字符串
- 数字格式化(输入数字(字符串),保留位数,同时逗号分隔,可输入科学计数法,增加了负数的处理)
- sql把逗号分隔的字符串拆成临时表
- SQL 中in传入字符串的处理
- 一些SQL 处理字符串的方法