在一次存储过程编写过程中,因为需要一次性查询多个Id值,则声明变量为varchar,但在执行过程中却出现转换int失败提示。
错误写法:
DECLARE @BalanceId nvarchar(200)
set @BalanceId = '8480,8481'
select * from tLawyerBalance where Id in (@BalanceId)
结果就发生了报错,错误提示如下:
通过多方查找,找到方法,可以使用charindex结合ltrim解决该问题,如下:
DECLARE @BalanceId nvarchar(200)
set @BalanceId = '8480,8481'
select * from tLawyerBalance where charindex(','+ltrim(Id)+',',','+@BalanceId+',')>0
将原来的SQL中where条件改为:
charindex(','+ltrim(Id)+',',','+@BalanceId+',')>0
希望能帮到各位小伙伴。