今天寫sql語句時,相對字符串類型的數字進行排序,怎么做呢?
需要先轉換成數字再進行排序
1.直接用加法
字符串+0
eg:
select * from orders order by (mark+0) desc
eg:
以分類字段進行分組,獲取分類總數amount,和qty(數量),最后以amount進行有大到小的倒序排列
SELECT category_code,SUM(transaction_number) as qty ,FORMAT(SUM(number*price),2)+0 as amount FROM sell WHERE date='2017-03-06' GROUP BY category_code ORDER BY amount DESC;
2.使用函數
CAST(value as type);
CONVERT(value, type);
注:
這里的type可以為:
浮點數 : DECIMAL
整數 : SIGNED
無符號整數 : UNSIGNED
eg:
select * from orders order by CONVERT(mark,SIGNED) desc
select * from orders order by CAST(mark as SIGNED) desc