我的查询 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
答案 0 :(得分:1)
对格式化的字符串进行排序将导致ASCII-abetical排序。如果您希望它们按数字排序,则您需要有两列,格式化和未格式化。请记住,这通常最好在您的应用程序层中完成。