0

我想将平均值的小数限制为 2 .. 这是代码:

select P.prodid, P.prodname, Q.score as "Average Score"
from qualitycheck Q
inner join  product P
on P.prodid = Q.prodid
where Q.score >= (select ROUND( AVG(score),2) from qualitycheck where score >= 2.0)
group by  P.prodid, P.prodname, Q.score
order by 3 ASC;
4

1 回答 1

0

对于 Oracle,您可以使用TO_CHAR来格式化 2 位小数;

select P.prodid, P.prodname, TO_CHAR(Q.score, '9999999999.99') as "Average Score"
from qualitycheck Q
...rest of query

请注意,您的格式字符串中需要足够的数字来覆盖您想要显示的最大整数位数,否则 Oracle 会将数字格式化为#####.

编辑:关于 MySQL 的旧答案;您需要使用FORMAT来获得固定的小数位数;

select P.prodid, P.prodname, FORMAT(Q.score, 2) as "Average Score"
from qualitycheck Q
...rest of query...

请注意,Average Score即使在数字实际上不需要那么多小数的情况下,这也会转换为字符串以保留小数,例如“12.00”。

于 2013-04-28T15:47:35.250 回答