我有2列我需要除和(cola)/ sum(ColB),但我没有得到所需的结果,因为SQL服务器似乎截断小数后的值 例如。我有 -
select 281370/1035
使用简单除法给出271,而除法的实际结果为271.8550724637681
,我想显示271.8
我试过
SELECT cast(round(281370/1035,1) as numeric(36,1))
但结果为271.0
答案 0 :(得分:1)
在SQL Server中,您必须将整数转换为十进制,并且可以使用Round
来获得所需的精度。
SELECT cast(Round(CAST(281370 AS decimal) / CAST(1035 AS decimal),1,1) as decimal(10,1))
答案 1 :(得分:0)
@Stormcloak给出了一个特别想要一个位置作为尾数的答案,但要回复一个确切的答案,你可以简单地#34;隐式更改数据类型。
select 281370.0/1035
返回:
271.855072
答案 2 :(得分:0)
问题是您给出了int编号并想要一个小数结果
试试这个
select convert(decimal(30,10),281370.0/1035.0)
或
select Round(convert(decimal(30,10),281370.0/1035.0),1,1)
答案 3 :(得分:0)
在Presto DB中: 选择(CAST(11为小数(8,6))/ CAST(7为小数(8,6)))
结果:1.571429
十进制(xp,xs) xp->总位数(小数点前+小数点后) xs->小数点后的位数