Announcement

Collapse
No announcement yet.

CASE/IF in WHERE

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • CASE/IF in WHERE

    Hallo,

    ist es möglich in einer Bedinung folgendes zu machen:

    Code:
    Where ....
    AND ( WENN SPALTE_A = '1' DANN SPALTE_B = xxxxx SONST SPALE_C = zzzzz)
    Es geht darum, wenn eine Spalte einen bestimmten Wert hat soll er eine bestimmte Bedinung nehmen oder eine andere (je nach Wert der Spalte was geprüft wird).

    Ich habe das mit CASE versucht, was leider nicht funktioniert.
    Wie kann ich sowas lösen?

    Vielen Dank vorab.
    Grüße

  • #2
    Hallo,

    dafür reicht einfache Logik!
    [highlight=sql]
    where ...
    AND ((SPALTE_A = '1' AND SPALTE_B = xxxxx) OR SPALE_C = zzzzz)
    [/highlight]

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Originally posted by Falk Prüfer View Post
      Hallo,

      dafür reicht einfache Logik!
      [highlight=sql]
      where ...
      AND ((SPALTE_A = '1' AND SPALTE_B = xxxxx) OR SPALE_C = zzzzz)
      [/highlight]

      Gruß Falk
      Gegebenfalls fehlt noch die Bedingung dass SPALTE_C nur überprüft wird wenn SPALTE_A != 1:

      [highlight=sql]
      where ...
      AND ((SPALTE_A = '1' AND SPALTE_B = xxxxx) OR (SPALTE_A != '1' AND SPALTE_C = zzzzz))
      [/highlight]

      Comment


      • #4
        Danke euch. So hätte ich es auch lösen können.
        Habe es mittlerweile wie folgt gemacht.

        Code:
        AND Spalte1 = (
        		CASE WHEN Spalte_a_1 IS NOT NULL THEN Spalte_a_1
        		ELSE ( SELECT Spalte_b_1 FROM ...)
        		END
        )
        Grüße

        Comment

        Working...
        X