Wie man mehrstufige Bedingungen in wo Klausel schreibt

Nehmen wir an, ich habe eine Spalte 'Rate' und Zeilen müssen auf Basis von unten Kriterien geholt werden. Unter CHARS sind nichts als Spalten.

  1. Wenn X> Y dann die Rate abruft
  2. wenn A> B dann
    • Wenn C> D dann Rate abrufen
    • wenn E> F dann
      • Wenn G> H dann die Rate abruft
      • Wenn ich> dann dann die Rate komme
      • wenn K> L dann
        • Wenn M> N DANN Fetch Rate

Ich stecke fest, wie man mehrstufige Bedingungen in WHERE-Klausel schreibt.

Ich bin nicht ganz sicher, dass ich das richtige Ende des Stabes bekommen habe, aber es klingt wie du willst einfach nur mehrere Bedingungen in der WHERE Klausel kombinieren:

 WHERE X>Y OR ( A>B AND ( C>D OR ( E>F AND ( G>H OR I>J OR (K>L AND M>N) ) ) ) ) 

Nicht alle Klammern sind unbedingt notwendig, aber ich ziehe es vor, sie zu benutzen, anstatt zu erinnern, ob AND oder OR höhere Priorität hat.

Um die Verfolgung in SQL zu parsing, kann man einen einfachen Satz von zwei Regeln verwenden:

  1. Ändern Sie "dann holen Sie Rate" zu "ODER (…)"
  2. Ändern Sie "dann" zu "UND (…)"

so dass die daraus resultierende SQL ist so etwas wie folgt:

 select Rate from ... where (X > Y) OR (A > B) AND ((C > D) OR (E > F) AND ((G > H) OR (I > J) OR (K > L) AND (M > N)))