Wertelisten mit IN
Wenn eine Spalte einem von mehreren Werten entsprechen soll, wird OR lang: genre = 'RPG' OR genre = 'Simulation' OR genre = 'Strategie'. IN sagt dasselbe kürzer. Nach der Spalte kommt IN und eine Liste von Werten in Klammern, durch Kommas getrennt:
SELECT titel, genre
FROM spiele
WHERE genre IN ('RPG', 'Simulation', 'Strategie')
ORDER BY genre, titel;| titel | genre |
|---|---|
| Dragon Forge | RPG |
| Knight's Oath | RPG |
| Bakery Story | Simulation |
| Moon Farm | Simulation |
| … | … |
Eine Zeile kommt ins Ergebnis, wenn ihr Wert einem der Werte in der Liste entspricht. Die Reihenfolge der Werte ist egal, und die Liste kann so lang sein, wie du willst. Zahlen stehen ohne Anführungszeichen in der Liste:
SELECT titel, altersfreigabe
FROM spiele
WHERE altersfreigabe IN (16, 18)
ORDER BY titel;| titel | altersfreigabe |
|---|---|
| Dragon Forge | 16 |
| Knight's Oath | 16 |
| Robot Rebellion | 16 |
| Shadow Ninja | 16 |
| Zombie Town | 18 |
NOT IN ist das Gegenteil: Es findet die Zeilen, deren Wert nicht in der Liste steht. Die Kunden, die nicht aus Hamburg oder Leipzig sind:
SELECT name, stadt
FROM kunden
WHERE stadt NOT IN ('Hamburg', 'Leipzig')
ORDER BY name;| name | stadt |
|---|---|
| Ida Zimmermann | Dresden |
| Max Krause | Berlin |
| Mia Lange | Berlin |
| Noah Winter | Dresden |
| Oskar Klein | Berlin |
Anna Fischer und Hannes Schulz sind nicht im Ergebnis, obwohl sie nicht aus Hamburg oder Leipzig sind: Ihre Stadt ist NULL. Zeilen mit NULL werden weder von IN noch von NOT IN gefunden. Warum, lernst du in der letzten Übung dieser Lektion.
Typischer Fehler: ein Paar Anführungszeichen um die ganze Liste. genre IN ('RPG, Strategie') ist kein Fehler, findet aber nichts. Die Liste hat einen einzigen Wert, den Text RPG, Strategie, und kein Spiel hat so ein Genre. Jeder Text in der Liste braucht seine eigenen Anführungszeichen: ('RPG', 'Strategie').
So schreibst du es:
Anweisungen
- 1
Der Shop hat die Gewinner eines Preises ausgelost: die Kunden mit der ID 2, 7 und 11. Zeige ihren Namen und ihre E-Mail-Adresse, sortiert nach dem Namen:
name email Greta Hoffmann greta.hoffmann@mail.de Lukas Neumann lukas.neumann@mail.de Mia Lange mia.lange@mail.de - 2
Zeige darunter den Titel und das Genre der Spiele, die keine Action-, Renn- oder Sportspiele sind (die Genres
Action,RennspielundSport). VerwendeNOT INund sortiere die Spiele nach dem Titel. Das Ergebnis beginnt so:titel genre Bakery Story Simulation Castle Siege Strategie Cube Logic Puzzle … …