问题
你想根据字符串的特定部分对查询结果进行排序。
解决方案
DB2、MySQL、Oracle 和 PostgreSQL
在 ORDER BY 子句中使用函数 SUBSTR。
select ename,job
from emp
order by substr(job,length(job)-1)
SQL Server
在 ORDER BY 子句中使用函数 SUBSTRING。在本实例中,大于或等于 2 的数字都可以。
select ename,job
from emp
order by substring(job,len(job)-1,2)
扩展
使用 DBMS 提供的子串函数,可以轻松地按字符串的任何部分排序。要按字符串的最后两个字符排序,可以先找到该字符串的末尾位置(字符串的长度)并减去 1。这样,起始位置就是字符串的倒数第 2 个字符。然后,可以提取从起始位置开始到字符串末尾的所有字符。
SQL Server 的函数 SUBSTRING 不同于函数 SUBSTR,它要求提供第 3 个参数,以用于指定要提取多少个字符。
点个赞吧,这对我非常重要!