SQL 中的两个数字相除时获得小数或浮点数结果的最佳方法是什么

What is the best way to get a decimal or a float result when dividing two numbers in SQL

我在 SQL 服务器中将变量 @avgMis 声明为 decimal(2,2)。然后我试图除以两个整数,期望得到一个十进制值。相反,我的答案是 0.00.

如何在 SQL 服务器中除 @avgMis = (1/(1+2+1)) 得到 0.25?

转换为十进制

DECLARE @x INT = 10, @y INT = 3, @z decimal(6,2)
SELECT @z = CAST(@x AS decimal(8,4))/CAST(@y AS DECIMAL(8,4))
SELECT @z

结果为 3.33

你的情况

SELECT CAST( CAST(1 AS DECIMAL(6,2))/CAST((1+2+1) AS DECIMAL(6,2)) AS DECIMAL(6,2)) AS result