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
我在 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