sql传⼊参数为逗号分隔的字符串处理⽅法
写了个存储过程,中间⽤到了类似这种写法
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)
结果:
欢迎指正

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。