MySQL使用FORMAT函数排序

时间:2015-03-06 20:09:11

标签: mysql sorting sql-order-by

我的查询 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

1 个答案:

答案 0 :(得分:1)

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