SQL查询结果排序

《第二章:查询结果排序》
1:以指定的次序返回查询结果
条件:显示部门10中员工名字,职位和工资并按照工资升序排列:升序asc   降序desc
SELECT ename,job,sal FROM emp WHERE deptno='10' ORDER BY sal asc;

2:按照多个字段排序
表中按照DEPTNO的升序排列然后按照工资降序排列;
SELECT empno,deptno,sal,ename,job FROM emp ORDER BY deptno,sal DESC;

3:按照子串排序
按照字符串的某一部分对查询结果排序,从EMP表中返回员工名字和职位,并且按照职位字段最后两个字符排序
SELECT ename,job FROM emp ORDER BY SUBSTR(job,LENGTH(job)-2);

4:对字母数字混合的数据排序

现有字母数字混合的数据,按照数字或字符部分排序
CREATE view V AS SELECT ename||''||deptno AS data from emp select * from V
 
5:处理排序空值
EMP中根据comm排序结果但是这个字段可以为空值需要指定是否将空值排序在最后
SELECT ename,sal,comm FROM emp ORDER BY 3; (还可以根据升序,降序进行排序)

6:根据数据项键排序
根据某些条件逻辑排序,列如Job是TES根据comm来排序,否则根据SAL排序;

在ORDER BY子句中使用CASE表达式:
SELECT ename,sal,job,comm FROM emp ORDER BY CASE WHEN job='TAB' THEN comm ELSE sal END

使用CASE表达式来动态改变如何对结果排序,传递给ORDER BY的值类似这样
SELECT ename,sal,job,comm, CASE WHEN job='TAB' THEN comm ELSE sal END AS ORDERED FROM emp ORDER BY 5

作者:KeerDi —— 北方的后生

出处:http://www.cnblogs.com/keerdi/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/123hll/p/6780624.html