我将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
函数......但错误相同。
答案 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)