SQL 按照子字符串排序

SQL 按照子字符串排序,你想根据一个子字符串对结果集进行排序,考虑下面的记录。

SQL 按照子字符串排序 问题描述

你想根据一个子字符串对结果集进行排序,考虑下面的记录。

ENAME
----------
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER

你希望按照每个名字的最后两个字符对上述记录进行排序。

ENAME
---------
ALLEN
TURNER
MILLER
JONES
JAMES
MARTIN
BLAKE
ADAMS
KING
WARD
FORD
CLARK
SMITH
SCOTT

SQL 按照子字符串排序 解决方案

解决这个问题的关键在于使用数据库管理系统的内置函数提取出用作排序标准的子字符串,通常使用 SUBSTR 函数来实现这一点。
DB2、Oracle、MySQLPostgreSQL
使用内置函数 LENGTHSUBSTR,根据字符串的特定部分排序。

1 select ename
2   from emp
3  order by substr(ename,length(ename)-1,2)

SQL Server
使用 SUBSTRING 函数和 LEN 函数,根据子字符串的特定部分排序。

1 select ename
2   from emp
3  order by substring(ename,len(ename)-1,2)

SQL 按照子字符串排序 扩展知识

通过在 ORDER BY 子句里使用 SUBSTR 表达式,我们可以选择一个字符串的任意部分用于结果集的排序。其实,也可以不使用 SUBSTR 函数,我们可以基于任何表达式对结果集排序。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程