Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

SQL Grundkurs 2: Aufgaben und Lösungen

Beispiel 6: Bedingung in einem Ausdruck

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Das Beispiel 5 soll dahingehend erweitert werden, dass ein Skonto nur angezeigt wird, wenn ein Kunde auch einen erhält. Ansonsten soll lediglich ein Bindestrich angezeigt werden.

Transkript

In SQL Ausdrücken können ja auch Bedingungen verwendet werden. Dazu wollen wir das fünfte Beispiel ein wenig modifizieren. Das Ergebnis soll sich dahingehend ändern, dass ein Skonto nur dann angezeigt wird, wenn auch tatsächlich für einen Kunden eines definiert ist. Ist kein Skonto definiert, soll lediglich so ein Bindestrich oder ein Minus, also je nachdem, wie man das bezeichnen möchte, hier angezeigt werden. Dazu müssen wir eine Bedingung definieren. Ich bin überzeugt, Sie wissen wie das geht. 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. Für die Lösung dieses Beispiels benötigen wir ein CASE. CASE ist ANSI konform und wird daher bei allen drei verwendeten Datenbankmanagementsystemen gleich angewendet. CASE in der erweiterten Syntax wird von einem WHEN gefolgt, und dahinter kommt die Bedingung. In unserem Fall lautet die Bedingung, der Inhalt der Spalte skonto 0 sein. Ist dies der Fall, dann folgt hinter WHEN der ursprüngliche Ausdruck, den wir bereits in der vorigen Variante des Beispiels generiert haben. Wir könnten hier weitere Bedingungen mit WHEN ergänzen, in dem Fall benötigen wir das aber nicht, und können direkt mit einem ELSE abschließen. ELSE und unter Hochkomma kommt hier der Bindestrich. Wichtig ist, dass ein CASE immer mit einem END abgeschlossen wird, sonst führt es zu einem Fehler. Und mit dieser einfachen Modifikation bekommen wir das gewünschte Ergebnis, wenn ich die Anweisung ausführe, wenn es einen Prozentsatz gibt wird er angezeigt, sonst eben nur mit dem Bindestrich. Wie erwähnt, ist diese Variante ANSI konform, und auch bei Oracle wird es exakt in derselben Syntax verwendet, nur der Ausdruck unterscheidet sich ja hier, wie bereits beim vorigen Beispiel, und das Ergebnis schaut dann auch so aus, wie wir es erwartet haben. Last, but not least - auch beim Microsoft SQL Server wird die CASE-Anweisung in derselben Syntax verwendet, und auch hier bekommen wir mit dieser Anweisung das gewünschte Ergebnis. Zusätzlich habe ich das Ergebnis hier mit der ORDER BY-Klausel nach dem Nachnamen sortiert, um eine aufsteigende Sortierung des Ergebnisses zu erzielen. Wenn Sie Bedingungen mit CASE verwenden, achten Sie also unbedingt immer darauf, dass Sie mit dem END das CASE beenden müssen, sonst bekommen Sie einen Syntax Fehler.

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!