Welche SQL-Abfrage findet Werte aus Spalte A, bei denen in Spalte B nicht J steht?

Antwort vom

**Wenn du alle Werte aus `A` suchst, bei denen in `B` **nicht** `J` steht, ist die einfache Abfrage meist:** ```sql SELECT A FROM deine_tabelle WHERE B <> 'J'; ``` **Wichtiger Unterschied:** Falls `B` auch `NULL` sein kann, reicht `<> 'J'` allein nicht, weil `NULL` dabei nicht mitkommt. Dann brauchst du:** ```sql SELECT A FROM deine_tabelle WHERE B IS NULL OR B <> 'J'; ``` ## Falls du meinst: „Zeige mir nur die `A`-Werte, für die es **nirgendwo** ein `J` in `B` gibt“ Dann ist die Logik strenger. Beispiel: Wenn ein `A` mehrfach vorkommt und bei einem Datensatz `B='J'` ist, soll dieses `A` komplett rausfallen. ```sql SELECT A FROM deine_tabelle GROUP BY A HAVING SUM(CASE WHEN B = 'J' THEN 1 ELSE 0 END) = 0; ``` Der Unterschied ist entscheidend: - `WHERE B <> 'J'` filtert nur einzelne Zeilen. - `HAVING ... = 0` filtert ganze `A`-Gruppen. Beispiel: | A | B | |---|---| | 1 | X | | 1 | J | | 2 | X | - Mit `WHERE B <> 'J'` bekommst du `1` und `2`. - Mit `GROUP BY A ... HAVING ... = 0` bekommst du nur `2`.

Kategorie: Technik Tags: SQL Spalte Abfrage

Verwandte Fragen

Wie richte ich in Outlook die Spalte „An“ dauerhaft in der Ansicht ein?

Die Spalte „An“ bleibt in Outlook nur dann dauerhaft sichtbar, wenn du sie in einer Listenansicht zur aktuellen Ansicht hinzufügst und diese Ansicht speicherst; in der Standardansicht...