Sql 如何添加0';s为整数

Sql 如何添加0';s为整数,sql,sql-server,tsql,number-formatting,Sql,Sql Server,Tsql,Number Formatting,我有以下SQL查询 SELECT MAX(averageSales) FROM ( SELECT AVG(TotalSale) AS averageSales FROM [Practice].[dbo].[Sales] GROUP BY CAST(SalesPerson AS NVARCHAR(100)) ) AS Query1; 我得到的结果是250,但我想将结果显示为250.0000。我已经研究了SQL的RIGHT和LEFT函数,但还没有弄清楚。 averageSa

我有以下SQL查询

SELECT MAX(averageSales)
FROM (
    SELECT AVG(TotalSale) AS averageSales
    FROM [Practice].[dbo].[Sales]
    GROUP BY CAST(SalesPerson AS NVARCHAR(100))
) AS Query1;
我得到的结果是
250
,但我想将结果显示为
250.0000
。我已经研究了SQL的
RIGHT
LEFT
函数,但还没有弄清楚。 averageSales的数据类型为int

我也尝试了以下方法

SELECT 
    MAX(averageSales), 
    CAST(MAX(averageSales) AS decimal(4,4))
FROM (
    SELECT AVG(TotalSale) AS averageSales 
    FROM [Practice].[dbo].[Sales]
    GROUP BY CAST(SalesPerson AS NVARCHAR(100))
) AS Query1;
但这导致了

将int转换为数据类型numeric时出现算术溢出错误

使用
格式(…,'#.0000')


使用
CAST
DECIMAL
NVARCHAR

GROUP BY CAST(SalesPerson as DECIMAL(8,4))

是否确实希望该列为
int
?这听起来像是一个货币字段。@Blorgbeard,这是我在网上看到的一个实践考试,我想自己实现这个解决方案。所以我复制了他们给我的任何东西。我个人不会将此列设为int列。您的
decimal(4,4)
声明的数字总共有4位(第一个“4”),其中4位在小数点之后(第二个“4”)。这意味着它可以处理0.0000到0.9999之间的任何内容,这就是为什么在尝试强制转换250的值时会出现溢出错误。如果将其设置为
十进制(8,4)
,则强制转换不会产生错误。即使这个答案是正确的,我也强烈建议在前端渲染输出。
GROUP BY CAST(SalesPerson as DECIMAL(8,4))