FORMAT整数,带千位逗号分隔符,因此我可以将ORDER BY用于结果(SQL SSMS)

问题描述 投票:0回答:1

以下代码:

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(如下图所示)

enter image description here

还尝试了以下代码:

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

但是数字被转换为NVARCHAR,这意味着结果没有排序。

enter image description here

表中的Total_2019列为INT。我进行了搜索,但是找到的所有解决方案均将答案转换为NVARCHAR,这意味着结果不正确。

使用SSMS。感谢您的时间。

sql sql-server tsql ssms
1个回答
0
投票

如果您发布的第二个查询返回期望值,而问题仅在于订单,那么您可以对原始列的总和进行排序(而不是对转换后的总和进行排序):

SELECT      LGA,        
            FORMAT(SUM(Total_2019),'N0') as Total2019
FROM        Crime_LGA
GROUP BY    LGA
ORDER BY    SUM(Total_2019) DESC;
© www.soinside.com 2019 - 2024. All rights reserved.