È necessario tenere presente che, a qualsiasi livello di un’istruzione CASE, una volta che la prima condizione WHEN viene valutata TRUE, l’istruzione THEN viene elaborata e salta alla FINE.

Non si sta testando un singolo campo per cinque condizioni diverse; si stanno testando 5 campi diversi per una delle due possibili condizioni. Ci sono due modi per gestire questo. O puoi creare un’istruzione CASE nidificata a 5 livelli in profondità (con ulteriore nidificazione ad ogni livello fino a 5, il che significa molte istruzioni CASE ripetute ai vari livelli), oppure puoi appiattirla rendendo le tue condizioni WHEN coprono tutti e 5 i campi e ordinandole in modo tale che ci siano combinazioni reciprocamente esclusive per ogni QUANDO, ad es.,

CASO
QUANDO È NULL ED È NULL ED È NULL ED È NULL ED È NULL ALLORA
QUANDO QUANDO NON È NULL ED È NULL ED È NULL ED È NULL ED È NULL ALLORA
* * * *

END

Entrambi gli approcci probabilmente eseguiranno lo stesso, quindi è solo una questione di quale struttura è più facile per te destreggiarti concettualmente. Io, trovo che nidificare oltre i livelli 3 sia piuttosto confuso.

Con il mio conteggio, ci sono 32 diverse combinazioni di stati NULL/non NULL per i 5 campi (2^5th), quindi usando il metodo flat, avresti bisogno di 32 istruzioni WHEN. Ogni istruzione THEN potrebbe dover avere più istruzioni, ad esempio AND AND AND .

Buona fortuna

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.