LoslegenKostenlos loslegen

Filtern deiner CASE-Anweisung

Erstellen wir eine Liste der Spiele, die das italienische Team von Bologna gewonnen hat! Es gibt eine ganze Reihe zusätzlicher Teams in den beiden Tabellen. Um eine brauchbare Abfrage zu erstellen, musst du deine CASE-Anweisung als Filter in der WHERE-Klausel verwenden.

CASE-Anweisungen ermöglichen es dir, Daten zu kategorisieren, die dich interessieren – und Daten auszuschließen, an denen du nicht interessiert bist. Dazu kannst du eine CASE-Anweisung als Filter in der WHERE-Anweisung verwenden, um Ergebnisse zu entfernen, die du nicht sehen willst.

So könntest du das tun:

SELECT *
FROM table
WHERE 

    CASE WHEN a > 5 THEN 'Keep'

         WHEN a <= 5 THEN 'Exclude' END = 'Keep';

Im Grunde kannst du die CASE-Anweisung wie jede andere Spalte in deiner Datenbank als Filterspalte verwenden. Der einzige Unterschied ist, dass du die Anweisung in WHERE nicht mit einem Alias versiehst.

Diese Übung ist Teil des Kurses

Datenbearbeitung in SQL

Kurs anzeigen

Anleitung zur Übung

  • Verwende die Anweisung CASE in der Klausel WHERE, um zu filtern, wenn hometeam_id gleich 9857 ist und die Heimtore die Auswärtstore übersteigen.
  • Verwende die Anweisung CASE in der Klausel WHERE, um zu filtern, wenn awayteam_id gleich 9857 ist und die Auswärtstore die Heimtore übersteigen.
  • Beende die CASE Erklärung, indem du Spiele ausschließt, die Bologna nicht gewonnen hat.

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

SELECT 
	season,
    date,
	home_goal,
	away_goal
FROM matches_italy
WHERE 
	-- Find games where home_goal is more than away_goal
	___ ___ hometeam_id = 9857 ___ home_goal ___ away_goal ___ 'Bologna Win'
		-- Find games where away_goal is more than home_goal
        ___ awayteam_id = 9857 ___ away_goal ___ home_goal ___ 'Bologna Win' 
        -- Exclude games not won by Bologna
		___ IS NOT ___;
Code bearbeiten und ausführen