2

変数データを含む varchar 型のフィールドを、フィールドからの数学演算のサンプル データ (引用符を除く) に使用できるデータ型に変換するエレガントな方法を探しています。

''
'abc'
'23'
'23.2'

このメソッドはすべてに対して機能し、最初と 2 番目の値は 0 を返し、SQL Server エラーをスローしないようにする必要があります。

4

5 に答える 5

4

これを試して:

SELECT CASE WHEN IsNumeric(YourColumn) = 0 THEN 
           0 
       ELSE 
           CAST(YourColumn AS decimal(18, 2)) 
       END

宛先のデータ型を調整する必要があります。デモ用に decimal(18, 2) を選択しました。

于 2009-10-13T10:56:25.240 に答える
0
SELECT  CASE IsNumeric(mycol) WHEN 1 THEN CAST(mycol AS FLOAT) ELSE 0 END
FROM    mytable
于 2009-10-13T10:56:03.073 に答える
0

変換したい場合は、UPDATE代わりに使用する必要がありますSELECT

UPDATE Table
SET Col1 = CAST(Col1 As Decimal(18,2))
于 2012-07-19T15:49:13.430 に答える