0

精度が9に等しい10進数としてデータベースに2つの数値を格納しています。私の目的は、これら2つの数値を加算し、データベースの値を更新することです。

DECLARE @v1 DECIMAL(9, 5), @v2 DECIMAL(9, 5)
SET @v1 = 9503.34000
SET @v2 = 1357.62000
SELECT CAST(@v1 + @v2 AS DECIMAL(9, 5))

これをSQLに追加すると、オーバーフローエラーがスローされますが、10,5に変更すると、10860.96000になります。

必要な精度に基づいて結果を追加して返すようにSQLに指示するにはどうすればよいですか。この合計で、10,5ではなく9,5が返されるようにします。

4

1 に答える 1

4

戻れませDECIMAL(9,5)。9,503 + 1,357は10,000より大きいため、小数点の前に5桁あります。

合計で9桁だけが必要な場合は、を使用しますCAST(@v1 +@v2 as DECIMAL(10,4))。とにかく小数点以下5桁を使用していないようです。

于 2012-05-05T14:37:38.373 に答える