SQl 在不损失精度的情况下在列中添加值

SQl Add values in columns wihout loss in precision

我有一个包含 5 列的 table,其中 4 列是十进制数据类型 (18, 2)。我想在不损失精度的情况下添加这四个值。 如果我这样做 Select column1, column2+column3+column4+column5 我得到的总数比实际总数高一些小数点。但是,如果我只是对所有列做一个select并将结果导出到excel,excel中这四列的总和是准确的。如何在excel列加值中实现高精度?

添加时至少将其中一列转换为 decimal(20,2),例如

select cast(column1 as decimal(20,2)) + column2 + column3 + column4 + column5