他のすべての言語(一般に算術エンジン)では、同じ優先順位の演算子を括弧で囲んでも、結果に影響はありません。しかし最近、テストプロジェクトで、MSSQLサーバーがそのような場合に結果を変更することに気づきました。以下のクエリをご覧になり、アイデア(またはSQL Server管理の設定)または動作を説明するMSDNの記事へのリンクがあればお知らせください。
select (0.55 * 287.61 / 0.66) calc_no_parens
,(0.55 * (287.61 / 0.66)) calc_parens
,round(0.55 * 287.61 / 0.66,2) no_paren_round
,round(0.55 * (287.61 / 0.66),2) paren_round;
結果
Column Record 1
calc_no_parens 239.6750000
calc_parens 239.67499985
no_paren_round 239.6800000
paren_round 239.67000000
私にとって、最初の2つは239.675を返し、ラウンドは239.68を返すはずです。