SQL - 将varchar值转换为Int时转换失败

时间:2013-03-06 09:39:08

标签: sql sql-server

我将varchar值传递给SQL函数。

但是我收到了这个错误:

  

Msg 245,Level 16,State 1,Line 2
  将varchar值'201,505,59,43,2202'转换为数据类型int时转换失败。

示例代码:

Declare @Fault Varchar(Max) = '201,505,59,43,2202'

Select * 
From EventMsg 
Where Event IN (Convert(Int, @Fault))

我试过了CAST& CONVERT函数......但错误相同。

2 个答案:

答案 0 :(得分:1)

如果要将逗号分隔的整数值列表作为字符串传递并想要使用每个值,则需要在.NET世界中编写类似于String.Split的函数。

有关Stack Overflow的大量答案,这里有一些

答案 1 :(得分:0)

另一种方法是声明表变量:

DECLARE @errorCodes AS TABLE (
    err INT
)
INSERT INTO @errorCodes (err) VALUES (1), (2), (3)

Select * From EventMsg Where Event IN (SELECT err FROM @errorCodes)