Oracle sql order by, avec instruction de cas

Je suis confronté à une difficulté dans la compréhension de l'oracle(12c) de sql clause order by avec instruction de cas.
J'ai une table avec les données ci-dessous,

SELECT DEPT_NO, DEPT_NAME FROM SORTNG_LOGIC;

DEPT_NO DEPT_NAME          
---------- --------------------
     1 FINANCE             
     2 ACCOUNT             
     3 HUMAN RESOURCE      
     4 AUDIT               
     5 TRAINING 

Je suis de l'exécution de la requête sql ci-dessous pour cette table à ajouter commande personnalisée, sur oracle sql developer.

SELECT DEPT_NO, DEPT_NAME FROM SORTNG_LOGIC ORDER BY (
CASE DEPT_NAME
WHEN 'ACCOUNT' THEN '1'
WHEN 'AUDIT' THEN '2'
WHEN 'FINANCE' THEN '3'
ELSE '4' END
)DESC;

Ceci donne le résultat ci-dessous :

DEPT_NO DEPT_NAME          
---------- --------------------
     3 HUMAN RESOURCE      
     5 TRAINING            
     1 FINANCE             
     4 AUDIT               
     2 ACCOUNT   

Mais je m'y attendais, le résultat devrait être

DEPT_NO DEPT_NAME          
---------- --------------------
     5 TRAINING            
     3 HUMAN RESOURCE      
     1 FINANCE             
     4 AUDIT               
     2 ACCOUNT   

Que je suis le tri de la dept_name dans l'ordre décroissant, j'ai pensé'Training " doit être au-dessus de 'ressources humaines'.

Où est ma compréhension va mal? Quelqu'un pourrait-il expliquer cela en détail?

comment sur l'utilisation de décoder au lieu de cas avec l'ordre par? ou de porter cette question à sélectionner une partie et en l'utilisant dans la sous-requête pour trier?
Pourquoi pensez-vous que la version? Vous avez 4 - 4 - 3 - 2 - 1. Comment faites-vous la distinction entre le 4 et le 4 ? Vous n'avez pas WHEN 'HUMAN RESOURCE' THEN '4' ELSE '5' END ... N'est-ce pas assez pour le ORDER BY DEPT_NAME DESC dans votre cas?
Je peux utiliser DEPT_NAME desc, mais je voudrais comprendre l'ordre en cas de déclaration. Merci\

OriginalL'auteur JohnySam | 2016-01-10