[Oracle8i]Performances CASE, DECODE
Bonjour à tous,
Une simple question, à votre avis quel est le plus performant entre les deux ? (j'ai vu un topic qui parle de la même chose mais la réponse est pas franche donc je préfére proposer directement mes deux solutions à l'étude).
Code:
1 2 3 4 5
| CASE WHEN (T1.c is NULL AND T2.c is NULL) THEN T3.c
WHEN T1.c is NULL THEN T2.c
WHEN T2.c is NULL THEN T1.c
ELSE decode ( Sign(T1.c - T2.c), 1 , T1.c ,T2.c )
END |
Code:
1 2 3 4 5 6 7
| decode ( T1.c,
NULL ,
decode ( T2.c, NULL, T3.c, T2.c) ,
decode ( T2.c, NULL , T1.c,
decode ( Sign(T1.c - T2.c), 1 , T1.c ,T2.c )
)
) |
Je pense que la seconde est plus efficace dans la majorité des cas si on compte le nombre de tests effectués. Mais il y a peut etre d'autres paramètres qui entrent en compte d'ou ma question.
Merci d'avance.