2017-12-11 12 views
0

1250과 같은 varchar 값을 십진수 값 12.50으로 변환해야합니다.십진수의 왼쪽 및 오른쪽 부분 식별 (varchar)

몇 가지 예 :

16500 165.00 
17525 175.25 
1015 10.15 
955 9.55 

나는 실제로 stuff(@total,len(@total)-1,0,'.') 다음 내 테이블의 진수 열을 내 값을 삽입 할이를 사용합니다. varchar 값이 100 = 1.00 이상이 될 때까지 작동합니다. 사실 5 = 0.05 (5 센트)과 같은 값을 얻는다면 문제가 있으며 작동하지 않습니다. -3 = -0.03

답변

4

TRY_CAST 함수를 사용해 보셨습니까?

SELECT TRY_CAST('1625' AS float)/100 
    FROM yourtable 

편집 같은 뭔가 : 더 나은 :)

SELECT 
     CASE WHEN ISNUMERIC(@total) = 1 
     THEN TRY_CAST(@total AS float)/100 
     ELSE 'NOT NUMERIC' 
     END AS Total 
    FROM yourtable