我在我需要訂購查詢結果在定製次序等的情況下執行以下操作:ORACLE SQL可以自定義查詢的順序結果嗎?
的DEPARTEMENT_ID
需要是按照該順序(10然後50然後20)
有沒有辦法得到這個結果?
我在我需要訂購查詢結果在定製次序等的情況下執行以下操作:ORACLE SQL可以自定義查詢的順序結果嗎?
的DEPARTEMENT_ID
需要是按照該順序(10然後50然後20)
有沒有辦法得到這個結果?
你可以使用CASE表達在ORDER BY子句。
我在這裏回答了一個類似的問題,https://stackoverflow.com/a/26033176/3989608,您可以調整它以在CASE表達式中擁有您自定義的條件。
例如,
SQL> SELECT ename,
2 deptno
3 FROM emp
4 ORDER BY
5 CASE deptno
6 WHEN 20 THEN 1
7 WHEN 10 THEN 2
8 WHEN 30 THEN 3
9 END
10/
ENAME DEPTNO
---------- ----------
SMITH 20
FORD 20
ADAMS 20
JONES 20
SCOTT 20
CLARK 10
KING 10
MILLER 10
ALLEN 30
TURNER 30
WARD 30
MARTIN 30
JAMES 30
BLAKE 30
14 rows selected.
SQL>
你可以這樣做的一種方法是讓其他列DISPLAY_ORDER按照你想要的順序擁有序列號數據。
所以將SQL
select JOB_ID, DEPARTMENT_ID
from EMPLOYEES
order by DISPLAY_ORDER;
可以使用DECODE
做到這一點。
SELECT JOB_ID,DEPARTMENT_ID
FROM YOURTABLE
ORDER BY DECODE(DEPARTEMENT_ID, 10, 1, 50, 2, 20, 3,4)
請參閱以下主題以獲取更多信息。
這是我需要感謝你的幫助:) – JSK 2015-04-06 08:56:00