带有千位逗号分隔符的 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;
以下代码:
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;