2013-08-09 2 views
0

내가 SQL 서버 Managment를 스튜디오 2012어떻게 비트 값이 난 할 노력하고있어하는 문자열 값이 약간이 경우 있는지 확인이다 TRY_CONVERT의 SQL 함수와 1보다 큰

를 사용하고 있는지 확인 할 수 있습니다

(TRY_CONVERT(bit, '2') IS NULL OR TRY_CONVERT(bit, '2') > 1) 

내가 거기에 값을 가진 문자열을 하드 코딩이 샘플 목적 :이 값이 여기에 1보다 큰 경우 다음 내가 확인하고자한다 나의 코드입니다.

누구나 이것이 왜 작동하지 않는지 말할 수 있습니다. 두 번째 조건을 의미합니다.

+2

을 고려할 것입니다 문제를 해결하기 위해'bit'이 1''보다 클 수 없다. 'cast (2 as bit)'는 단지 '1'을 제공합니다. –

+0

비트가 1보다 클 수 없습니다. 비트로 변환 될 때 양의 int = 1입니다. –

+0

나는 그것이'char' 또는'varchar (1)'이라고 생각한다. – Romesh

답변

1

bit SQL Server의 필드는 1, 0 또는 NULL 중 하나의 값만 가질 수 있으므로 1보다 큰 값을 검사하는 것은 유효하지 않습니다.

그래서이 방법

SELECT Convert(bit, CASE WHEN your_field IN ('1', '0') THEN your_field END) As valid_bit