SQL 除法精度

Sil*_*ish 5 sql sql-server rounding division

我有 2 列需要除以 sum(cola)/sum(ColB),但我没有得到想要的结果,因为 SQL 服务器似乎截断了十进制后的值,例如。我有-

select 281370/1035
Run Code Online (Sandbox Code Playgroud)

使用简单除法给出 271,而除法的实际结果是271.8550724637681,我想显示271.8

我试过

SELECT cast(round(281370/1035,1) as numeric(36,1))
Run Code Online (Sandbox Code Playgroud)

但结果 271.0

luc*_*cky 5

在 SQL Server 中,您必须将整数转换为十进制,然后才能使用它Round来获得所需的精度。

SELECT cast(Round(CAST(281370 AS decimal) / CAST(1035 AS decimal),1,1) as decimal(10,1))
Run Code Online (Sandbox Code Playgroud)