COMMANDE PAR DECODE(BLA, [NUMÉRO de COLONNE]) sur une seule colonne de la requête. Comment ça fonctionne?

Salut, j'ai besoin d'aide pour comprendre le décoder une partie d'une requête qui va quelque chose comme ce qui suit.

SELECT ax.animal_code    
FROM  raw_animal_xref ax,
      animal_xref_type axt
WHERE ax.animal_mnemonic = l_animal_mnemonic -- Example 'COUGAR'
AND   ax.animal_code_type = axt.animal_code_type
ORDER BY DECODE (animal_type, 
                l_type_to_be_matched, -1, -- Example 'CATS'
                l_current_type, 0, -- Example 'BIG CATS'
                nvl(axt.type_search_priority, 100)) ASC; -- EXAMPLE 'Big Cats' Priority is 1

Depuis cette requête ne retourne qu'1 de la requête, je suis un peu perplexe sur la façon dont l'ORDRE PAR les œuvres avec les différents non-existant colonne de chiffres fournis par les DÉCODER. La requête fonctionne comme un curseur pour trouver un code unique pour l'animal en question et compte tenu d'un animal mnémonique de l'animal en cours type et le type à être mis en correspondance avec.

Je pense que DÉCODER retourne les différents numéros de colonne à l'ORDRE PAR avec et j'ai essayé d'expérimenter avec un autre simple à une seule colonne sélectionne sur certains autres tables avec la COMMANDE par '-1', '0' et '100' et la COMMANDE par semble échouer pour 0 et 100. Pourquoi faut-il travailler avec -1 ou l'un des autres numéros?

Espère que quelqu'un peut-il m'expliquer cela. Merci!

OriginalL'auteur Azeworai | 2010-02-19