先来看问题

这是选课表sc中的所有条目,
注意看课程号cno为2的有两条分别为:
95001  2  88
95002  2  93

上图中的查询是为了获得,选修了课程号cno为2的课程的所有同学的平均成绩。
由第一张图知此平均为90.5,这里却没显示小数部分。。。。

 

    我百度了一下,百度知道里居然还有错误的结果,更不可思议的是被选为了满意回答,更更吊的是有好几个评论说是正解。。。。

知道里的回答是 round(AVG(score),2)
ROUND(Numeric_expr,length)        此函数将给定的数值四舍五入到指定的长度。
AVG(score)得到的数据已经是整数了,四舍五入怎么会出现小数?

 

    我又搜了一会,最终查到了一个利用几个函数组合的解决方法。

解释: cast(expression AS data_type[(length)]) 此函数将一种数据类型的表达式转换为另一种数据类型的表达式。
numeric(5,2)数字长度为5,小数部分2位。

若不对结果利用cast()函数进行转换得到: