【发布时间】:2020-04-28 15:13:30
【问题描述】:
我有下面的代码,但我的查询没有按预期排序项目。
我的列被声明为DOUBLE
查询:
Select VendorName, format(SUM(Order_Quantity*Net_price),2) as Total_Purchase
from purchases
group by VendorName
order by Total_Purchase desc;
【问题讨论】:
-
您按字符串排序(因为 Format function 输出字符串)。字符串排序不同于数字排序。而是按
SUM(Order_Quantity*Net_price)排序 - 即按实际数值排序,而不是它的格式化演示版本。 -
P.S.我认为在大多数情况下,您的 SQL 查询应该只输出原始数字。任何展示性的东西,例如添加逗号等,都应该由正在向用户进行数据最终展示的任何工具/应用程序来完成。
标签: mysql sql sql-order-by