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;

您会注意到值分别为 00。因此你得到了错误。 0.56 不是 int,它是 decimal,所以当你 INSERT 变成 int 时,它就变成了 int

更改列的数据类型。也许:

CREATE TABLE dbo.main(val1 decimal(3,2),
                      val2 decimal(3,2));

DB<>Fiddle