CASE文の任意のレベルで、最初のWHEN条件がTRUEに評価されると、THEN文が処理され、ENDにジャンプすることに注意する必要があります。

5つの異なる条件に対して単一のフィールドをテストしているのではなく、2つの可能な条件のうちの1つについて5つの異なるフィールドをテストしています。 これを処理するには2つの方法があります。 ネストされたCASE文を5レベル深く作成することができます(各レベルでさらにネストして5まで、さまざまなレベルで多くの繰り返しCASE文を意味します)、またはWHEN condtionsが5つのフィールドすべてをカバーし、それぞれのWHENに対して相互に排他的な組み合わせがあるような方法でそれらを並べ替えることによって、それを平らにすることができます。

CASE
WHEN IS NULL AND IS NULL AND IS NULL AND IS NULL AND IS NULL AND IS NULL THEN
WHEN IS NOT NULL AND IS NULL AND IS NULL AND IS NULL AND IS NULL AND IS NULL THEN
* * * *

END

どちらのアプローチもおそらくほぼ同じように実行されるため、どの構造が概念的にジャグリングするのが簡単かという問題に過ぎません。 私は、私はかなり混乱する3つのレベルを超えてネストを見つけます。私のカウントでは、5つのフィールド(2^5番目)にNULL/非NULL状態の32の異なる組み合わせがあるため、flatメソッドを使用すると、32のWHEN文が必要になります。 各THEN文は、ANDおよびANDなど、複数の命令を持つ必要がある場合があります。

がんばろう

コメントを残す

メールアドレスが公開されることはありません。