Salut, je suis sous Oracle 10G,

J'ai deux possibilités de tri et je veux mettre ça dans un ORDER BY.

Je dois utiliser un DECODE ou bien un CASE ?
Ma variable est V_ORDRE.

Les deux ne fonctionnent pas à cause je crois du ORDER BY sur plusieurs colonnes et non sur juste une.

Auriez-vous une solution ?
Je dois faire un ORDER BY sur quelques colonnes de la table selon V_ORDRE :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT * FROM ABC
WHERE ID = V_ID
ORDER BY DECODE(V_ORDRE,1, (NO_EMP, NO_SOCIAL, ADRESSE)
                          V_ORDRE,2, (NO_SOCIAL, NOM, PRENOM)
Ou bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT * FROM ABC
WHERE ID = V_ID
ORDER BY CASE
              V_ORDRE = 1 THEN (NO_EMP, NO_SOCIAL, ADRESSE)
              V_ORDRE = 2 THEN (NO_SOCIAL, NOM, PRENOM)
              END
Merci beaucoup !