2017-12-11 17 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,'.')を行い、その後、私のテーブル内の10進数の列に私の値を挿入するためにこれを使用しています。これは、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 
関連する問題