繁体   English   中英

SQL按字母升序和数字降序在同一列中排序

[英]SQL Order by Letters Ascending and Numbers Descending Same Column

我正在尝试通过MySQL对列进行排序。 字母排序应升序,数字排序则降序。 因为这可能有点令人困惑,所以下面是一个示例:

要排序的数据:

Access 2003
Access 2007
Access 2013
Aliens
Excel 2003
Excel 2007
Everybody is happy
Powerpoint 2003
Powerpoint 2007

成为

Access 2013
Access 2007
Access 2003
Aliens
Excel 2007
Excel 2003
Everybody is happy
Powerpoint 2007
Powerpoint 2003

还要指出的是,有问题的字段将采用与上述相同的模式:名称后跟一个空格。 因此,如果无法使用内置的MYSQL函数。 我们能否将第一个空格后的字段分为两个字段,然后先按数字排序,然后再按实际字段本身排序?

您可以使用此代码将您的字段分为两个字段,然后根据需要对其进行排序。

SELECT
   SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) AS string_name,
    TRIM( SUBSTR(fullname, LOCATE(' ', fullname)) ) AS numberpart
FROM table

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM