Oracle のバックグラウンドを持っている私は、SQL Server がこのような些細な懸念のためにどのように苦労しているのか信じられません。
varchar
列の数値を数値列に解析したいだけです。問題は、数値が米国スタイルではなく、ドイツ スタイルの形式であるということです。つまり、小数点と桁区切り記号が入れ替わります。
例:
1.767,13 equals one thousand and seven hundred ...
私はすべての MSDN 記事に目を通しました。CAST
追加のパラメーターは受け入れません。日付/時刻と金額の変換にのみ適用されるように見えるスタイルCONVERT
を取ることができます。さらに、カルチャパラメータを使用するものを見つけましたが、2008 バージョンではまだ利用できないようです。TRY_PARSE
私はクラッジの解決策を思いつきましたが、それだけではありません!
cast(replace(replace([TOTALVALUE],'.',''), ',','.') as numeric(20,2))
最初に桁区切り記号が削除され、次に小数点がコンマからドットに変更されます。それは機能しますが、堅牢です。
コメントと回答ありがとうございます!