use*_*748 3 sql sql-server asp-classic
在一个SQL语句中,我试图划分两个整数(在我的代码中整数1是"abc",在我的代码中整数2是"xyz"),并得到一个十进制的结果(在我的代码中的def).十进制结果应该只有一个前导1或0,后跟一个十进制和十进制后的3个数字.但是我的代码一直返回一个没有小数的0.
SELECT CONVERT(DECIMAL(4,3), abc/xyz) AS def
Run Code Online (Sandbox Code Playgroud)
当我想要的是"0.001"或"0.963"时,此代码会产生"0".我相信它仍然将"def"视为整数,而不是小数.
我也尝试在abc和xyz上使用CAST,但它返回相同的东西.我也尝试了以下代码:
SELECT CONVERT(DECIMAL(4,3), abc/xyz) AS CONVERT(DECIMAL(4,3)def)
Run Code Online (Sandbox Code Playgroud)
但这给了我一个错误,说"CONVERT"这个词附近有语法错误.
在除法之前转换为十进制,而不是之后.转换为答案格式.
SELECT
CONVERT( DECIMAL(4,3)
, ( CONVERT(DECIMAL(10,3), abc) / CONVERT(DECIMAL(10,3), xyz) )
) AS def
Run Code Online (Sandbox Code Playgroud)