带有千位逗号分隔符的 FORMAT 整数,因此我可以使用 ORDER BY 作为结果 (SQL SSMS)

FORMAT integer with thousand comma separator so I can use ORDER BY for the result (SQL SSMS)

以下代码:

SELECT      LGA,        
            FORMAT(SUM(Total_2019)+0,'00,000') as Total2019
FROM        Crime_LGA
GROUP BY    LGA
ORDER BY    Total2019 DESC;

给出了正确的结果,但格式在数字下降时给出了不需要的 0,例如 09,591 而不是 9,591(如下图所示)

还尝试了以下代码:

SELECT      LGA,        
            FORMAT(SUM(Total_2019),'N0') as Total2019
FROM        Crime_LGA
GROUP BY    LGA
ORDER BY    Total2019 DESC;

但是数字被转换为NVARCHAR,也就是说结果没有排序

Total_2019 列是 table 中的 INT。我四处搜索,但我发现的所有解决方案都导致将答案转换为 NVARCHAR,这意味着结果是乱序的。

使用 SSMS。感谢您的宝贵时间。

我发布的第二个查询 returns 预期值,问题仅在于顺序,那么您可以对原始列的总和进行排序(而不是对转换后的总和进行排序):

SELECT      LGA,        
            FORMAT(SUM(Total_2019),'N0') as Total2019
FROM        Crime_LGA
GROUP BY    LGA
ORDER BY    SUM(Total_2019) DESC;