zoukankan      html  css  js  c++  java
  • Oracle查询优化--排序

     1 --普通排序
     2 SELECT * FROM emp ORDER BY sal DESC;
     3 --使用列序排序
     4 SELECT * FROM emp ORDER BY 6 DESC;
     5 --组合排序
     6 SELECT * FROM emp ORDER BY deptno ASC,1 DESC;
     7 --translate函数,参数分别用A、B、C表示
     8 SELECT ename,translate(ename,'LE','el') FROM emp;--当C=B时,相当于单字符一一对应替换同位置替换,即L-->e,E-->l,范围是整个A
     9 SELECT ename,translate(ename,'LE','ada') FROM emp;--当C>B时,多余字符无效,等长部分替换效果同第8行
    10 SELECT ename,translate(ename,'LE','a') FROM emp;--当C<B时,多余字符被删除,登场部分替换效果同第8行
    11 SELECT ename,translate(ename,'RNER','abcd') FROM emp;--替换位置为从左至右,因此第二个R对应的d不能发挥作用,因为到此处的判断时,A中的R均已被替换为a了
    12 SELECT * FROM (SELECT ename,translate(ename,'LE','') a FROM emp)WHERE a IS NULL;--如果条件为a='',则无结果集
    13 SELECT ename,translate(ename,'LE',null) FROM emp;--当C为null或''时,返回值为null而不是''
    14 --translate 可以用来删除一些无用信息,比如名字中有数字一般是不会发生的,如果有,可以使用以下语句剔除
    15 SELECT translate(ename,'-1234567890','-') FROM emp;--参考第三条基本用法,此语句作用是去除数字
    16 --处理空值排序NULLS FIRST/NULLS LAST
    17 SELECT * FROM emp ORDER BY comm;
    18 SELECT * FROM emp ORDER BY comm NULLS FIRST;
    19 SELECT * FROM emp ORDER BY comm NULLS LAST;--可见系统默认是NULLS LAST
    20 --根据条件排序case when
    21 SELECT empno AS 编号,ename AS 姓名,
    22 CASE WHEN sal >=1000 AND sal<=2000 THEN 1 
    23 ELSE 2 END AS 级别 ,
    24 sal AS 工资 
    25 FROM emp 
    26 WHERE deptno=30 
    27 ORDER BY 3,4;
    28 --case when语句只涉及条件判断,可以放在order by子句中
    29 SELECT empno AS 编号,ename AS 姓名,
    30 sal AS 工资 
    31 FROM emp 
    32 WHERE deptno=30 
    33 ORDER BY CASE WHEN sal >=1000 AND sal<=2000 THEN 1 
    34 ELSE 2 END,3;
  • 相关阅读:
    CEO良言:创业就请在29岁前做富翁
    在酒桌上看出她是哪种女人!
    巴菲特的人生财富课
    曹操的领导力:羊群变狮群(领导艺术终极体现)
    商业模式木桶短板原理与长板原理
    这三种力量,让你的人生从此大不一样……
    都市男女的30句妙语叹息
    郎咸平:诸葛亮是一名优秀的企业家吗?
    做小生意,解决生活中的问题:创业路上的成功感悟
    100个成功经验(价格不菲的培训课程笔记摘要)
  • 原文地址:https://www.cnblogs.com/yw0219/p/6040997.html
Copyright © 2011-2022 走看看