SQL Grundkurs 2: Aufgaben und Lösungen

Beispiel 12: Mehrere Kriterien mit AND und OR – IN(), BETWEEN

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Wir möchten Artikel der Artikelgruppen Besteck und Geschirr ausgeben, die entweder weniger als 10 Euro oder mehr als 25 Euro kosten. Das Ergebnis soll aufsteigend nach der Artikelgruppe und dem Verkaufspreis sortiert werden.

Transkript

Dieser Film bietet Ihnen nochmals die Möglichkeit, den Einsatz der WHERE-Klausel zu üben. Worum geht es in diesem Beispiel? Wir möchten Artikel der zwei Gruppen Besteck und Geschirr ausgeben, die entweder weniger als 10,-- oder mehr als 25,-- Euro im Verkaufspreis kosten, das heißt, wir sehen hier zum Beispiel Besteck, das fängt bei 76 Cent an im Preis, der steigt hier an bis 79, und dann haben wir den Sprung über 25, also hier dazwischen gibt es nichts. Das Ergebnis möchten wir hier nach der Artikelgruppe und innerhalb der Artikelgruppe nach dem Verkaufspreis sortieren, damit das so herauskommt, wie ich es Ihnen hier zeige. Nach dem Besteck kommt eben das Geschirr, das hat das Kürzel GE, das fängt hier wieder beim niedrigsten Preis an, 1,09 Euro, steigt hier an, wird immer höher, und ich scrolle jetzt hier einmal ganz zum Ende, und dann sehen wir hier den Sprung, hier auch zwischen 10 und 25 wollen wir keinen Artikel haben. In Summe bekommen wir auf diese Art und Weise aus unserer Artikeltabelle 158 Zeilen geliefert. Es gibt verschiedene Varianten, wie Sie die WHERE-Klausel dazu definieren, wir schauen uns das gleich gemeinsam an. 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. Ich bin mir sicher, Sie haben eine passende Lösung gefunden. Betrachten wir uns einmal eine erste mögliche Lösungsvariante. Ich führe diese Anweisung einmal aus, und die liefert das gewünschte Ergebnis. Diese vier Spalten aus der Tabelle "artikel". Wir wollten Artikel der Gruppe Besteck und Geschirr. Wir sagen im Umgangssprachlichen zwar Und, aber hier darf natürlich kein Und, sondern muss ein Oder (OR) stehen. Wir meinen damit ja alle Artikel, die entweder der Gruppe Besteck, oder der Gruppe Geschirr angehören. Nachdem es jetzt hier mit AND (Und) weitergeht zum Verkaufspreis, müssen wir hier eine Klammer setzen, damit diese zwei immer fix zusammen gehören, und damit eine höhere Priorität bekommen, als dieses AND. Der Verkaufspreis soll nun entweder unter 10,-- oder über 25,-- Euro liegen, daher brauchen wir auch hier ein OR, nämlich er ist entweder < 10 OR vkpreis 25. Hier kann man ja auch kein AND verwenden, denn ein Preis kann nicht zugleich unter 10 und über 25 Euro liegen, das muss ein OR sein, deshalb auch dieser Teil hier in runde Klammern, damit diese zwei Bedingungen fix zusammen gehören. Also eine dieser beiden und eine dieser beiden Bedingungen muss erfüllt sein, damit wir Artikel aus diesen beiden Gruppen mit einem Preis unter oder über 25 Euro verwenden. Vielleicht sind Sie auch auf eine andere Lösung gekommen, denn sowohl den ersten als auch den zweiten Teil könnten wir auch anders abbilden. Das OR im ersten Teil Bedingung könnten wir durch ein IN ersetzen, gruppe IN( 'BE', 'GE)', das heißt diese zwei Artikelgruppen. Ein IN liefert mir ja eine Oder-Logik. Und auch den zweiten Teil könnte ich durch eine einzige Teilbedingung ablösen, nämlich wenn es um Preise geht, oder überhaupt um Werte, die nicht die Grenzwerte nach innen zeigend, sondern nach außen zeigend haben, also entweder < oder , dann können wir ja NOT BETWEEN verwenden, denn mit BETWEEN 10 AND 25 würden wir ja alle Preise zwischen 10 und 25 bekommen. Wir wollen genau das Gegenteil, also mit NOT, NOT BETWEEN erzielen wir dieses. Also, diese vier Einzelbedingungen könnten wir durch diese zwei Teilbedingungen ersetzen, um exakt dasselbe Ergebnis zu bekommen - das gleiche Ergebnis. Dann sparen wir uns auch die Klammern, weil wir nun mehr zwei Teilbedingungen haben, die wir mit einem AND verknüpfen. Sie haben hier die Lösung mit dem Microsoft SQL Server gesehen. Dieses Beispiel wird mit Oracle und MySQL mit exakt derselben Anweisung gelöst. da gibt es keinen Unterschied in der Syntax, denn hier ist kein produktspezifisches Element enthalten. Sie können also mehrere Werte mit OR oder mit IN filtern. Grenzen, die nach außen zeigen, können Sie mit zwei OR-Bedingungen, oder mit einem NOT BETWEEN umsetzen.

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!