今天写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