特殊甲骨文订单

TOM*_*MMY 1 oracle order-by

我在 ORACLE 中有一个包含两列的表 (emp):

COMPANY   OFFICE    EMP
------------------------
9999      00001     emp1
9999      00001     emp2
9999      00002     emp3
9999      00002     emp4
0001      99999     emp5
0001      00001     emp6
0001      00002     emp7
0002      00001     emp8
0002      99999     emp9
0003      99999     emp10
0003      00001     emp11
0003      00002     emp12
Run Code Online (Sandbox Code Playgroud)

我想使用以下语句在 EMP 列中获取值:

SELECT 
   EMP 
FROM 
   emp
ORDER BY COMPANY /*(But 9999 is first)*/, OFFICE /*(But 99999 is first).*/
Run Code Online (Sandbox Code Playgroud)

我不知道怎么办。

cod*_*ger 6

我想您希望结果按升序排列,但 9999 始终排在第一位?

Select EMP
From Emp
Order By Case When Company = 9999 Then -1 else Company End,
         Case When Office = 9999 Then -1 else Office End;
Run Code Online (Sandbox Code Playgroud)