2011-09-22 4 views
2
SELECT CASE Price WHEN '' THEN 0.0 ELSE Price END FROM Table 

빈 가격이 0.0 반환하지만 열 값을 갖는 경우,이 저 데이터 유형 VARCHAR 숫자로 변환varchar를 데이터 유형 numeric으로 변환하는 산술 오버플로 오류가 있습니까?

산술 오버플로 오류가 다음 오류를 범하는 경우.

이 경우를 처리하기 위해 코드를 변경하는 방법은 무엇입니까?

+0

가격 열은 어떤 데이터 유형입니까? – Joe

+0

가격 열은 십진수입니다 – CodeHunter

+0

그럼 빈 문자열과 어떻게 동등할까요? 나는 당신의 CASE 성명을 이해하지 못합니다. – Joe

답변

3
SELECT CASE Price WHEN '' THEN 0.0 ELSE CAST(Price AS DECIMAL(...)) END FROM Table 

암시 적 변환은 가능한 한 가장 작은 유형을 취하기 때문에 더 큰 값을 지정하면 실패합니다. 명시 적으로 CASE/ELSE에서 올바른 유형으로 값을 변환/변환합니다.

+0

이 작동하고 일부 열의 값이 30.100000000000001이므로 실패합니다. 해결 방법이 있습니까? – CodeHunter

관련 문제