2016-06-02 1 views
0

안녕하세요, 저는 CHARINDEX를 varchar 열에서 사용하는 곳에서 좋은 선택을했습니다. 그러나 정수 열에서이 열을 사용하면 다음과 같은 오류가 발생합니다.CHARINDEX (정수 포함)

charindex 함수의 인수 1에 대해 인수 데이터 형식 int가 잘못되었습니다.

이하 두 가지 쿼리를 모두 나열했습니다.

stremail 정수

**below returns results as aspected** 
SELECT intEmployeeID 
FROM [dbo].[tblEmployees] 
WHERE CHARINDEX(',' + strEmail + ',', ',' + REPLACE('[email protected], [email protected]', ' ', '') + ',') > 0 


**below I get an error if I'm trying to select on a integer column** 
SELECT intEmployeeID 
FROM [dbo].[tblEmployees] 
WHERE CHARINDEX(',' + intEmployeeID + ',', ',' + REPLACE('1, 2', ' ', '') + ',') > 0 

어떤 도움이 가장 greatful 것에서 VARCHAR intEmployeeID입니다.

+0

첫 번째 2 개의 답변이 도움이되었지만 답변을 사용했습니다. @Matt에 의해 제공됩니다. 고마워, – raymantle

답변

1
SELECT intEmployeeID 
FROM [dbo].[tblEmployees] 
WHERE CHARINDEX(',' + cast(intEmployeeID as nvarchar(max)) + ',', ',' + REPLACE('1, 2', ' ', '') + ',') > 0 
+0

고마워요. @Matt 당신 대답을 사용했습니다. – raymantle

1
+ cast(intEmployeeID as varchar)+ 

캐스트는 VARCHAR로 intEmployeeID

1

당신은 그렇지 않으면 정수 또한 대신 문자열 연결의로 + 연산자를 컴파일, 명시 적으로 문자열로 정수를 변환 할 수 있습니다

CHARINDEX(',' + CONVERT(VARCHAR(10),intEmployeeID) + ',', ',' + REPLACE('1, 2', ' ', '') + ',')