Sie müssen berücksichtigen, dass auf einer bestimmten Ebene einer CASE-Anweisung die THEN-Anweisung verarbeitet wird, sobald die erste WHEN-Bedingung als WAHR ausgewertet wird und zum ENDE springt.
Sie testen kein einzelnes Feld auf fünf verschiedene Bedingungen; Sie testen 5 verschiedene Felder auf eine von zwei möglichen Bedingungen. Es gibt zwei Möglichkeiten, dies zu handhaben. Entweder können Sie eine verschachtelte CASE-Anweisung 5 Ebenen tief erstellen (mit weiterer Verschachtelung auf jeder Ebene bis zu 5, was viele wiederholte CASE-Anweisungen auf den verschiedenen Ebenen bedeutet), oder Sie können sie reduzieren, indem Sie Ihre WHEN-Bedingungen alle 5 Felder abdecken und sie so anordnen, dass es für jedes WHEN gegenseitig ausschließende Kombinationen gibt, z.,
FALL
WENN NULL IST UND NULL IST UND NULL IST UND NULL IST UND NULL IST DANN
WENN WENN NICHT NULL IST UND NULL IST UND NULL IST UND NULL IST UND NULL IST DANN
* * * *
END
Jeder Ansatz wird wahrscheinlich ungefähr gleich funktionieren, daher ist es nur eine Frage, welche Struktur für Sie konzeptionell einfacher zu jonglieren ist. Ich finde das Verschachteln jenseits von 3 Ebenen ziemlich verwirrend.
Nach meiner Zählung gibt es 32 verschiedene Kombinationen von NULL / Nicht-NULL-Zuständen für die 5 Felder (2 ^ 5). Wenn Sie also die Flat-Methode verwenden, benötigen Sie 32 WHEN-Anweisungen. Jede THEN-Anweisung muss möglicherweise mehrere Anweisungen enthalten, z. B. AND UND AND .
Viel Glück