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

相关文章:

  • 2022-12-23
  • 2021-12-06
  • 2021-12-04
  • 2021-07-21
  • 2022-12-23
  • 2021-12-06
  • 2021-12-20
猜你喜欢
  • 2022-02-08
  • 2021-12-11
  • 2021-11-30
  • 2021-11-17
  • 2022-12-23
相关资源
相似解决方案