在 PIVOT 中的 AVG 函数后设置两位小数

Set two decimal places after AVG function inside PIVOT

SELECT 
   Student, [English], [Mathematics], [Science], [Programming], [History]
FROM
(
   SELECT  
       Grades, Subject, Student
   FROM    
       Grade_Report
) AS sourcetable
PIVOT
(
   AVG(Grades)
   FOR [Subject] IN ([English], [Mathematics], [Science], [Programming], [History])
) AS pivoted

输出一直是95.000000

我尝试在数据透视表中使用 AVG( CAST(Grades AS Decimal(10,2) ) ) ,但它一直返回有关 (.

的语法错误

尝试在 FROM 子查询中使用 CAST AS DECIMAL,但它只是保持相同的 00000 输出。 CAST AS FLOAT 有效,但我需要两位小数,它消除了尾随的 0

在枢轴内部使用 ROUND(AVG) 最终成为无法识别的聚合。

您希望所有数字保留两位小数,即使这些数字并不重要。这看起来像是一个纯粹的格式问题。

我会推荐 format():

SELECT Student, 
    format([English],     '0.00') as [English], 
    format([Mathematics], '0.00') as [Mathematics],
    format([Science],     '0.00') as [Science],
    format([Programming], '0.00') as [Programming],
    format([History],     '0.00') as [History]
FROM ...

请注意,这会将数字转换为字符串 - 这似乎是您在这里实际要问的内容。