FORMAT целое число с разделителем запятых тысяч, поэтому я могу использовать ORDER BY для результата (SQL SSMS) - PullRequest
0 голосов
/ 27 апреля 2020

Следующий код:

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. Цените свое время.

1 Ответ

0 голосов
/ 29 апреля 2020

Если второй отправленный вами запрос возвращает ожидаемые значения, и проблема заключается только в заказе, то вы можете заказать по сумме исходного столбца (вместо упорядочения по преобразованной сумме):

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