2013-03-06 1 views
0

varchar 값을 SQL 함수에 전달했습니다.SQL - varchar 값을 Int로 변환 할 때 변환에 실패했습니다

Msg 245, Level 16, State 1, Line 2
Conversion failed when converting the varchar value '201,505,59,43,2202' to data type int.

샘플 코드 :

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

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

내가 모두 CAST & CONVERT 기능을 시도 ...하지만 같은 오류

는하지만이 오류가 발생합니다.

+1

오류 메시지는 완전히 이해할 수 없습니다. 이 문자열은 정수로 해석 할 수 없습니다. 어떻게 해석하고 싶습니까? – ppeterka

+2

숫자와 쉼표를 포함하는 단일 문자열 값은 * 여러 * 값의 시퀀스와 같지 않습니다 *. SQL Server는 단일 값을 보지 않고 * 여러 * 값으로 분할합니다. –

+0

그런 다음 방법이 있습니까? 나는 한 번에 모든 값을 함수에 전달하려고합니다. – Shaggy

답변

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) 
관련 문제