如何在SQL中为计算列Total_Completed添加CAST保留两位小数?
解决CAST函数格式化两位小数的语法问题
别担心,我来帮你把语法捋顺!你需要把整个计算表达式放进CAST()函数里,而不是只包裹其中一部分。这样才能确保最终的计算结果被转换为保留两位小数的decimal类型。
正确的写法应该是这样的:
SELECT -- 其他需要查询的列... CAST( ([Complt_Emp] + [No_Non_Complt_Emp]) / [No_of_Emp] AS DECIMAL(10, 2) ) AS Total_Completed FROM 你的表名; -- 替换成实际的表名
关键说明:
CAST()函数的参数是你完整的计算式([Complt_Emp] + [No_Non_Complt_Emp]) / [No_of_Emp],这样整个运算结果会被统一转换为指定的decimal类型DECIMAL(10,2)表示总共有10位数字,其中2位是小数部分,完全符合你要显示两位小数的需求- 如果你的数据库支持(比如SQL Server),也可以用
ROUND()函数配合CAST来确保结果格式,不过直接用CAST转换已经足够实现保留两位小数的效果
举个实际的例子,假设你的表叫EmployeeStats,完整的查询可能是:
SELECT Emp_Department, CAST( ([Complt_Emp] + [No_Non_Complt_Emp]) / [No_of_Emp] AS DECIMAL(10, 2) ) AS Total_Completed FROM EmployeeStats;
这样查询出来的Total_Completed列就会始终显示两位小数啦!
内容的提问来源于stack exchange,提问作者Pat
相关产品推荐
相关产品推荐

