MySQL 使用 FORMAT 函数时排序

MySQL Sorting when using FORMAT function

我有一个 SUMS 不同值的查询,然后使用 ORDER BY.

对结果进行排序

每当我使用 FORMAT 格式化结果时,我得到的顺序与没有格式时不同。

例如:

订购 格式:2827.0000、1668.0000、663.1000

订购 格式:663.10、2,827.00、1,668.00

是什么导致了这种行为?

这是完整的查询:

SELECT
FORMAT( ( (Sum(CASE WHEN YEAR(order_date) = 2015 THEN total END) / 100) - (SELECT COALESCE( ( SUM(total) / 100), 0) 
FROM returns WHERE customer = orders.customer AND YEAR(return_dat) = 2015) ), 2) AS anual

FROM orders

WHERE 1 GROUP BY customer ORDER BY anual DESC

排序格式化字符串将导致 ASCII-abetical 排序。如果你想让它们按数字排序,你需要有两列,格式化的和未格式化的。请记住,这通常最好在您的应用程序层中完成。