Oracle的order by case when
今天單位一位同事問我,說在一個select裡的order by 後面接了 case when是什麼意思?例子如下:
- order by CASE WHEN ref.IS_TOP=1 THEN 1 ELSE 0 END DESC
-
SQL> SELECT EMPNO, ENAME, DEPTNO
-
FROM SCOTT.EMP A
-
ORDER BY CASE WHEN A.DEPTNO = 20 THEN 1 ELSE 0 END DESC;
-
-
EMPNO ENAME DEPTNO
-
---------- ---------- ----------
-
7902 FORD 20
-
7788 SCOTT 20
-
7876 ADAMS 20
-
7369 SMITH 20
-
7566 JONES 20
-
7839 KING 10
-
7844 TURNER 30
-
7900 JAMES 30
-
7934 MILLER 10
-
7698 BLAKE 30
-
7654 MARTIN 30
-
-
EMPNO ENAME DEPTNO
-
---------- ---------- ----------
-
7521 WARD 30
-
7499 ALLEN 30
-
7782 CLARK 10
-
- 14 rows selected.
-
SQL> SELECT EMPNO, ENAME, DEPTNO
-
FROM SCOTT.EMP A
-
ORDER BY CASE WHEN A.DEPTNO = 20 THEN 1 ELSE 0 END ASC; 2 3
-
-
EMPNO ENAME DEPTNO
-
---------- ---------- ----------
-
7782 CLARK 10
-
7900 JAMES 30
-
7844 TURNER 30
-
7839 KING 10
-
7934 MILLER 10
-
7499 ALLEN 30
-
7521 WARD 30
-
7654 MARTIN 30
-
7698 BLAKE 30
-
7788 SCOTT 20
-
7566 JONES 20
-
-
EMPNO ENAME DEPTNO
-
---------- ---------- ----------
-
7902 FORD 20
-
7876 ADAMS 20
-
7369 SMITH 20
-
- 14 rows selected.
和我們預期的一致,dept等於20的在最下面。
總結:
假如需要讓一個列的某些值排序的話,可以用這個方法哦。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20893244/viewspace-2146478/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQLServer使用case when中的order bySQLServer
- ORACLE CASE WHEN 及 SELECT CASE WHEN的用法Oracle
- Oracle Case WhenOracle
- 案例:oracle中case when的用法Oracle
- oracle plsql case when_end case小記OracleSQL
- sqlserver使用order by case when進行優先順序排序SQLServer排序
- Oracle case when改寫SQLOracleSQL
- ORACLE多欄位CASE WHENOracle
- oracle面試題[關於case when的用法]Oracle面試題
- SQL Case WhenSQL
- mysql case when then 使用MySql
- Oracle vs PostgreSQL Develop(30) - Index&Case whenOracleSQLdevIndex
- mysql中case when的使用MySql
- mysql中的case when 與if()MySql
- SQL中的CASE WHEN使用SQL
- ORACLE SQL開發where子句之case-whenOracleSQL
- Case when 支援變數變數
- case when遇上null值Null
- SQL Case when 的使用方法SQL
- sql中case when的小學SQL
- Oracle 條件索引 case when 報錯解決方案Oracle索引
- sqlserver與oracle case when else ,isnull語法差別SQLServerOracleNull
- PL/SQL Case when應用SQL
- sql case when, Exist ,group by ,聚合SQL
- SQL Server CASE WHEN ... THEN ... ELSE ... ENDSQLServer
- SQL中的case when then else end用法SQL
- sql server select case when的用法SQLServer
- plsql_case when_end case學習小例SQL
- plsql_case when_if else endifSQL
- MySQL 的CASE WHEN 語句使用說明MySql
- Oracle group by與case when統一單位後統計數量Oracle
- 136-MySQL5.17 update更新[case when then end]的使用MySql
- ORA-00937——Oracle中GROUP BY搭配CASE WHEN的一則SQL報錯OracleSQL
- SQL語句case when外用sum與count的區別SQL
- SQL中的case when then else end用法 【詳細】轉載SQL
- 【專案實戰】---SQLServer中case when的簡單用法SQLServer
- PLSQL條件(CASE WHEN)語句小應用SQL
- oracle caseOracle