SQL Grundkurs 2: Aufgaben und Lösungen

Beispiel 13: Mehrere Kriterien mit AND und OR – LIKE

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Filtern Sie aus den Artikeln jene heraus, in deren Bezeichnung entweder der Begriff "Garnitur" oder "Dose" enthalten ist. Sortieren Sie das Ergebnis so, dass zuerst jene Artikel, die "Dose" enthalten, angezeigt werden und erst danach die "Garnituren".

Transkript

Nutzen Sie dieses Beispiel, um die Verwendung von Mustervergleichen für das Filtern zu verwenden. Es geht konkret um den Einsatz des Vergleichsoperators LIKE. Diesmal sollen aus der Artikeltabelle, die verwenden wir für dieses Beispiel, alle jene Artikel herausgefiltert werden, die in der Bezeichnung entweder den Begriff "Dose" oder "Garnitur" enthalten. Dabei soll es keine Rolle spielen, ob der Begriff in der Mitte, am Ende, oder am Beginn zu sehen ist. Zum Beispiel hier bei der Federball Garnitur finden wir Garnitur am Ende, bei der Besteckgarnitur, Garnitur in der Mitte. Ich habe hier im Ergebnis, das müssen Sie nicht unbedingt auch machen, aber zur Veranschaulichung in der Spalte typ, in dieser berechneten Spalte typ, noch ausgegeben ob es sich um eine Dose oder Garnitur handelt. Das habe ich außerdem verwendet um danach zu sortieren, denn wahlweise möchten wir zuerst nach die Dosen und danach die Garnituren ausgeben. Zusätzlich sortieren wir dann noch nach Artikelgruppe und nach dem Preis. Entscheidend ist aber, dass wir nur diese beiden Artikel herausfiltern, besser gesagt die Artikel, die einen dieser beiden Begriffe enthält, schreiben wir vor und nach dem Begriff Garnitur jeweils ein Prozentzeichen. Pausieren Sie nun das Video und lösen Sie die Aufgabe. Wenn Sie damit fertig sind, fahren Sie mit dem Video fort und sehen Sie sich meine Musterlösung an. Betrachten wir uns nun gemeinsam die Lösung für dieses Beispiel. 44 Zeilen werden ja hier gefunden. Für das Filtern verwenden wir hier den Operator LIKE. Nachdem es jetzt hier darum geht, einerseits am Beginn oder am Ende einen wahlweisen Text zu haben, schreiben wir vor und nach dem Begriff garnitur jeweils ein Prozentzeichen. Prozent kann auch gar nichts sein, das heißt, mit '%garnitur%' finden wir entweder alle die am Beginn, am Ende oder in der Mitte den Begriff Garnitur aufweisen. OR - damit wir auch die Dosen bekommen, OR bezeichnung LIKE und das Gleiche noch einmal mit Dose, Prozent vorne und hinten bedeutet auch hier, dass irgendwo in der Bezeichnung der Begriff Dose vorkommen sollte. Damit ich leichter danach sortieren kann habe ich diesen Ausdruck hier ergänzt, um diese Spalte typ zu generieren. Ich verwende eine Bedingung CASE WHEN bezeichnung, und hier das Gleiche wie in der WHERE-Klausel: LIKE %garnitur% THEN 'Garnitur' ELSE 'Dose'. Alles was im Ergebnis zu finden ist und nicht Garnitur enthält, muss ja zwangsläufig den Begriff Dose enthalten, deshalb kann ich das im ELSE Bereich hier abdecken. END AS typ, dadurch bekomme ich diese berechnete Spalte. Das hat den Vorteil, dass ich die Spalte typ nun auch für das Sortieren verwenden kann: ORDER BY typ, gruppe, und bezeichnung; das ist die Sortierung so wie sie gefordert war, und liefert uns auch das gewünschte Ergebnis, der Aliasname wird hier verwendet. Was machen wir nun, wenn wir diese Spalte typ gar nicht anzeigen möchten, sondern nur Garnituren und Dosen anzeigen, ohne diese Spalte? Dann können wir diese berechnete Spalte weglassen, und zum Beispiel folgenden Ausdruck für die Sortierung verwenden, in der Sortierung kann auch ein Ausdruck zum Einsatz kommen, ORDER BY CASE WHEN bezeichnung LIKE '%dose%' THEN 1 ELSE 2. Was bedeutet das? Wenn der Begriff Dose vorkommt, dann soll hier 1 als Ergebnis des Ausdrucks kommen, sonst 2, sonst heißt in dem Fall Garnituren, und damit hätten wir bei Dose 1 und bei Garnitur 2, und aufgrund der aufsteigenden Sortierung kommen hier die Dosen zuerst. Das wäre jetzt eine alternative Möglichkeit dieses Ergebnis ohne die Anzeige der Spalte typ zu erzielen. Ich führe diese Anweisung noch aus, und wir haben jetzt dieselbe Reihenfolge wie vorhin, aber ohne diese Spalte typ. Sie haben in diesem Beispiel gesehen, wie wir einerseits mit LIKE filtern können, und auch über berechnete Spalten sortieren können. Entweder verwenden wir dazu einen Aliasnamen, den wir für eine berechnete Spalte vergeben haben, oder alternativ, zum Beispiel wenn die Spalte gar nicht angezeigt werden soll, können wir direkt einen Ausdruck in der Sortierung verwenden.

SQL Grundkurs 2: Aufgaben und Lösungen

Vertiefen Sie Ihre SQL-Kenntnisse. In diesem Workshop erhalten Sie zahlreiche Beispielaufgaben, die Sie selbst lösen können. Anschließend zeigt Ihnen der Trainer die Lösung.

7 Std. 41 min (61 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieses Training setzt SQL-Kenntnisse voraus, wie sie beispielsweise in „SQL lernen und anwenden“ vermittelt werden.

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!