0
Declare @ls_sql nchar(50)
Set @ls_sql='118,10028,10029'

Select * from Accounts Where Accid in(@ls_sql)

执行时出错

将 varchar 值 '118,10028,10029' 转换为数据类型 int 时转换失败。

4

1 回答 1

1

发生此错误是因为 SQL Server期望值(118,10028,10029)而不是varchar值。因此它尝试转换'118,10028,10029'为 INT 数据类型。您不能在 T-SQL 中以这种方式使用 IN 运算符。

尝试使用

Select * from Accounts 
Where ','+@ls_sql+',' LIKE '%,'+cast(Accid as VARCHAR(100))+',%'
于 2013-08-14T11:06:12.447 回答