この式は暗黙的な変換を使用します。
SELECT 9.999 * '9.999'
99.980001 と評価されます。
これを使用して型情報をログに記録すると:
SELECT
SQL_VARIANT_PROPERTY(9.999 * '9.999', 'BaseType'),
SQL_VARIANT_PROPERTY(9.999 * '9.999', 'Precision'),
SQL_VARIANT_PROPERTY(9.999 * '9.999', 'Scale'),
SQL_VARIANT_PROPERTY(9.999 * '9.999', 'MaxLength')
私は得る:
- BaseType数値
- プレシジョン9
- スケール6
- 最大長5
精度を除くすべての結果を理解していると思います。小数点以下の桁数を左2桁、右6桁とすると合計8桁になります。
ここで SQL Server が 9 を計算するのはなぜですか?
PS私はSQL Server 2008 R2を使用しています