Übung: Die Preisliste
Pixel Shop überarbeitet seine Preisliste, und du hast dafür alle Werkzeuge. Eine Preisliste ist ein guter Test für diese Lektion: Fast jede Spalte darin ist berechnet.
Funktionen können ineinander stehen, und alles andere, was du gelernt hast, auch: Eine Funktion kann das Argument einer anderen Funktion sein, eine Berechnung kann in einer Funktion stehen, und eine Funktion kann in einer Bedingung von CASE stehen. Die Initialen jedes Kunden zum Beispiel sind der erste Buchstabe des Namens und der erste Buchstabe nach dem Leerzeichen:
SELECT name,
SUBSTR(name, 1, 1) || SUBSTR(name, INSTR(name, ' ') + 1, 1) AS initialen
FROM kunden
LIMIT 3;| name | initialen |
|---|---|
| Emma Becker | EB |
| Lukas Neumann | LN |
| Olivia Braun | OB |
Ein paar Tipps für Abfragen wie diese:
- Baue eine lange Spalte Schritt für Schritt auf. Schreibe zuerst den innersten Teil, zum Beispiel
INSTR(name, ' '), führe ihn aus und prüfe das Ergebnis, und packe ihn erst dann in die nächste Funktion. - Zähle die Klammern. Jede Funktion öffnet eine, und jede muss geschlossen werden;
incomplete inputoder ein Syntaxfehler bedeuten oft, dass eine fehlt. - Denke an die Ganzzahldivision und an
NULL: Braucht die Berechnung ein.0? Kann eine SpalteNULLsein, und was soll dann herauskommen? - Gib jeder berechneten Spalte mit
ASeinen Namen.
So schreibst du es:
Anweisungen
- 1
Die Preisliste auf der Website zeigt neben jedem Spiel ein Abzeichen. Zeige den Titel, den Preis und
badge:Vorbestellungfür Spiele, die noch nicht erschienen sind,neufür Spiele, die 2025 erschienen sind, undauf Lagerfür die übrigen. Sortiere die Spiele nach dem Preis, den höchsten zuerst, und Spiele mit demselben Preis nach dem Titel:titel preis badge Knight's Oath 60 neu Goal Rush 50 neu Ice Hockey Pro 45 auf Lager Dragon Forge 40 auf Lager Robot Rebellion 40 Vorbestellung … … … - 2
Spiele, die vor 2023 erschienen sind, werden mit 25 % Rabatt angeboten. Zeige darunter ihren Titel, ihren Preis und
angebotspreis: den Preis mal 0.75, auf ganze Euro gerundet und als Ganzzahl angezeigt (23, nicht23.0). Sortiere sie nach dem Erscheinungsdatum:titel preis angebotspreis Cube Logic 5 4 Castle Siege 30 23 Ocean Deep 15 11 Lost Temple 20 15 Moon Farm 20 15 - 3
Auf Kassenbons ist Platz für 13 Zeichen eines Titels. Zeige
kurztitel: Titel mit bis zu 13 Zeichen so, wie sie sind, und längere auf ihre ersten 10 Zeichen gekürzt, gefolgt von..., also insgesamt 13 Zeichen. Zeige dann den Preis. Sortiere die Spiele nach dem Preis, den höchsten zuerst, und Spiele mit demselben Preis nach dem Titel:kurztitel preis Knight's Oath 60 Goal Rush 50 Ice Hockey... 45 … …