microsoft SQL azure studio 在除以小于 1 的数字时除以零
microsoft SQL azure studio division by zero when dividing numbers less than 1
我已经创建了这个演示 table -
create table main(
val1 int,
val2 int
);
插入了几个值
insert into main values(0.54,0.56);
当我 运行 这个查询
select val1/val2 from main
我得到 'Divide by zero error encountered.' 这是因为分母在除法发生之前四舍五入为零。我该如何解决这个问题?
当我尝试将值转换为数字时,错误仍然存在。
select cast(val1 as numeric(3,2)) / cast(val2 as numeric(3,2))
from main
检查 table 中的值实际上是什么...在 INSERT
之后,如果您执行:
SELECT val1, val2
FROM dbo.main;
您会注意到值分别为 0
和 0
。因此你得到了错误。 0.56
不是 int
,它是 decimal
,所以当你 INSERT
变成 int
时,它就变成了 int
。
更改列的数据类型。也许:
CREATE TABLE dbo.main(val1 decimal(3,2),
val2 decimal(3,2));
我已经创建了这个演示 table -
create table main(
val1 int,
val2 int
);
插入了几个值
insert into main values(0.54,0.56);
当我 运行 这个查询
select val1/val2 from main
我得到 'Divide by zero error encountered.' 这是因为分母在除法发生之前四舍五入为零。我该如何解决这个问题? 当我尝试将值转换为数字时,错误仍然存在。
select cast(val1 as numeric(3,2)) / cast(val2 as numeric(3,2))
from main
检查 table 中的值实际上是什么...在 INSERT
之后,如果您执行:
SELECT val1, val2
FROM dbo.main;
您会注意到值分别为 0
和 0
。因此你得到了错误。 0.56
不是 int
,它是 decimal
,所以当你 INSERT
变成 int
时,它就变成了 int
。
更改列的数据类型。也许:
CREATE TABLE dbo.main(val1 decimal(3,2),
val2 decimal(3,2));