You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL聚合查询如何按同列空格分隔的第二值升序、第一值升序排序

解决方法

核心逻辑是把Semester字段按空格拆分为前后两段,优先对第二段做升序排序,再对第一段做升序排序,不同数据库的字符串拆分函数略有区别,对应修改ORDER BY子句即可:

MySQL / MariaDB 版本

order by  
    substring_index(pdc.semester, ' ', -1) asc,
    substring_index(pdc.semester, ' ', 1) asc

PostgreSQL 版本

order by  
    split_part(pdc.semester, ' ', 2) asc,
    split_part(pdc.semester, ' ', 1) asc

SQL Server 2016+ 版本

order by  
    parsename(replace(pdc.semester, ' ', '.'), 1) asc,
    parsename(replace(pdc.semester, ' ', '.'), 2) asc

Oracle 版本

order by  
    substr(pdc.semester, instr(pdc.semester, ' ') + 1) asc,
    substr(pdc.semester, 1, instr(pdc.semester, ' ') - 1) asc

修改后就可以得到你需要的排序效果:先按空格后的年份/批次段升序,同一段内再按空格前的编号升序。

内容的提问来源于stack exchange,提问作者Ishfaq Babar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 03:36:07