我有700以下的SQL查询
declare @a decimal(10,0)
declare @b decimal(10,0)
set @a = 100 - 2
set @a = @a / 14
set @a = @a * 100
set @a = ((100 - 2) / 14) * 100
select @a
我正在寻找的是返回85.714285等...
不太确定我哪里错了。
由于
答案 0 :(得分:1)
您的声明有误:
declare @a decimal(10,0)
declare @b decimal(10,0)
您已指定长度,但不是小数位数,这是通过使用第二个值来完成的。
答案 1 :(得分:0)
将.0添加到最后一行的末尾,因为如果使用所有整数,SQL将隐式地将结果转换为int。
set @a = ((100 - 2) / 14) * 100.0
答案 2 :(得分:0)
将您的声明更改为包含小数位:
declare @a decimal(10,5)
declare @b decimal(10,5)
set @a = 100 - 2
set @a = @a / 14
set @a = @a * 100
set @a = ((100 - 2) / 14) * 100
select @a
由于您的声明设置为10,0
,因此您将不会获得小数位。
如果您希望答案为85.714 ...那么您需要将SQL更改为:
declare @a decimal(10,5)
set @a = 100.0 - 2.0
set @a = @a / 14.0
set @a = @a * 100.0
set @a = 100.0 - ((2.0 / 14.0) * 100.0)
select @a
要获得您正在寻找的结果,您需要将.
添加到其他值(2,14等),您将获得所需的值,还需要确保您的括号在正确的位置。
结果 - 85.71430
答案 3 :(得分:0)
700
是正确的结果。
请再次检查!
((100 - 2) / 14) * 100 = 700
你计算了
100 - 2 / 14 * 100 = 85,...
您想使用此SQL查询。
set @a = 100 - 2.0 / 14 * 100