在 SQL 语句中,我试图除以两个整数(整数 1 在我的代码中为“abc”,整数 2 在我的代码中为“xyz”),并得到十进制结果(在我的代码中为 def)。小数结果应仅以 1 或 0 开头,后跟一个小数和小数点后 3 个数字。然而我的代码总是返回一个没有小数点的直0。
SELECT CONVERT(DECIMAL(4,3), abc/xyz) AS def
当我想要的是“0.001”或“0.963”之类的东西时,此代码结果为“0”。我相信它仍然将“def”视为整数,而不是小数。
我也尝试过在 abc 和 xyz 上使用 CAST,但它返回相同的结果。我还尝试过以下代码:
SELECT CONVERT(DECIMAL(4,3), abc/xyz) AS CONVERT(DECIMAL(4,3)def)
但这给了我一个错误,说“CONVERT”一词附近有语法错误。
在除法之前而不是之后转换为小数。答案格式的转换。
SELECT
CONVERT( DECIMAL(4,3)
, ( CONVERT(DECIMAL(10,3), abc) / CONVERT(DECIMAL(10,3), xyz) )
) AS def
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)