標籤:com asc 作用 返回 用法 資訊 條件判斷 rom 無效
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 LAST17 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 LAST20 --根據條件排序case when21 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;
Oracle查詢最佳化--排序