2013-10-03 2 views
0

일부 데이터 유형 변환 문제가 있습니다.varchar를 숫자 데이터 유형으로 변환 할 수 없습니다.

목록 B는 '-' 제거하려면 varchar
에서 원시 데이터입니다 나는 REPLACE(PPRICE,'-','')
목록 A가 아니라 varchar에 사용된다. 그러나

, 나는 내가 그것을 못하게

CONVERT(numeric(18, 4),REPLACE(PPRICE,'-','')) 

SQL Server에서 숫자 (18,4)로 데이터 형식을 변환 할.

이유를 아는 사람이 있습니까?

그런데 목록의 일부 값은 비어 있습니다.

A B 
1800 1800 
75.44 75.44 
75.44 75.44 
20  000020- 
25  000025- 
250 250 
+0

"SQL 서버 나 그것을 할 수 있도록하지 않습니다." 네가 가진 오류가 뭐니? 내가 열거 한 데이터를 변환하는 데 아무런 문제가 없습니다. – EricZ

답변

1

목록의 빈 값으로 인해 변환이 실패한 것처럼 보입니다. case 문을 사용하여 빈 데이터를 요구하면이 작업을 수행 할 수 있습니다.

CONVERT(NUMERIC(18, 4),REPLACE(CASE WHEN LTRIM(RTRIM(PPRICE)) <> '' THEN 0 ELSE A END,'-','')) 
관련 문제