我试图在 SQL View 中将一个数字除以另一个。我将两列分别为 int 类型,问题是它给了我一个四舍五入的输出,而不是一个准确的输出。

这是我的选择:

SELECT numberOne, numberTwo, (numberOne*100/NULLIF(numberTwo, 0)) as PctOutput

这是有效的,但是当它以 37 倍下降 3 时,它给了我 8 而不是 8.108。

我将如何修改它以给我一个准确的答案?我需要从整数中转换数字吗?如果是这样 - 变成什么?

最佳答案

    **--Cast the denominator as Float**
    SELECT 3 * 100 / NULLIF(CAST(37 AS FLOAT),0) -- 8.10810810810811

    **--Multiply by 1.0 in either numerator OR denominator**
    SELECT 3 * 100 / NULLIF(37 * 1.0,0) -- 8.108108
    SELECT 3.0 * 100 / NULLIF(37,0) -- 8.108108


    **--Convert it to decimal**
    SELECT CONVERT(DECIMAL(25,13), 3) * 100 /
           NULLIF(CONVERT(DECIMAL(25,13), 37),0) -- 8.108108108

关于sql - 获得准确的百分比计算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8957746/

10-11 04:46