DBMS kennen in der Regel eine ganze Reihe von Berechnungen. Vorhin haben wir gesehen, dass die Funktionen häufig ähnlich in der Bedienung sind, wie die Funktionen in Excel.
Sie erinnern sich, dass wir mal weiter oben die DATE-Funktion eingeführt haben:
SELECT DATE('now','year');
Wie kommt man drauf, welche Funktionen überhaupt existieren? Vielleicht haben Sie eine Idee, wie Sie eine Berechnung von Excel im Kopf. Funktioniert die hier auch?
Am einfachsten probieren Sie das einfach aus.
Zumindest SQLite Studio bietet eine IntelliSense-Funktion, wie Sie das von Microsoft her kennen.
Tippen Sie im SQL-Editor einfach mal Ctrl & Space (Leertaste). Das bringt Ihnen eine Auflistung:
Falls Sie im SQL-Editor bereits SELECT geschrieben haben und dahinter Ctrl & Space drücken, dann kommt noch viel mehr:

Hier dürfen Sie sich gerne mal austoben😂.
SQLite resp. jedes DBMS kennt mehrere Dutzend bis Hunderte an Funktionen. Wir schauen hier natürlich aus Zeitgründen nur ein paar wenige an.
Ein einfaches Beispiel haben Sie bereits gesehen: eine Zahl (in diesem Fall die Summe der Frachtkosten) wird mühsam mit fürchterlich vielen Nachkommastellen angezeigt:
Da haben wir die Funktion round() verwendet, um die Beträge zu runden.
Öffnen Sie mal die Tabelle "tblBestellDetails":
Wir haben zwar einen Stückpreis und eine Menge, aber wir sehen keinen Gesamtpreis. Wir sehen also nicht, wie viel die Kund*innen bezahlt haben für die Artikel. Das ist eine klassische Aufgabe für Berechnungen in einer Abfrage.
Wie Sie die ersten vier Spalten abfragen können, wissen Sie unterdessen (den Rabatt lassen wir noch weg):
SELECT tBestellungID, tProduktID, tMenge, tPreis FROM tblBestellDetails;
Das sollte das Ergebnis sein:
Jetzt ergänzen wir einfach ein weiteres Attribut:
tMenge * tPreis AS qTotal
Das ist eine stinknormale Multiplikation. Der gesamte SQL-Befehl sieht so aus:
SELECT tBestellungID, tProduktID, tMenge, tPreis, tMenge * tPreis AS qTotal FROM tblBestellDetails;
Das ergibt folgende Liste:
Herrlich, nicht? So können Sie nun beliebige Spalten mit Berechnungen erstellen, welche sich auf die anderen Spalten beziehen.
Sie sehen, dass das Attribut "tPreis" wieder mal Probleme mit den Nachkommastellen hat.
Zum Aufwärmen runden Sie diese Spalte auf zwei Nachkommastellen.
Und jetzt dürfen Sie diese Aufgabe noch ein wenig erweitern😎.
Fügen Sie weitere Spalten hinzu (und benennen Sie diese um), dass Sie folgende Tabelle kriegen:
Hinweis: runden müssen Sie nur den Bruttobetrag, das reicht. Aber Sie dürfen in einer Berechnung nicht auf vorher erstellte Spalten zugreifen. Sie müssen leider die Berechnung immer vollständig aufgrund der Attribute in der Tabelle vornehmen.
Tipp: gehen Sie Spalte für Spalte vor. Nicht alles aufs Mal!
Wir haben im Kapitel Erste Schritte mit SELECT mal vom sog. "Konkatenieren" gesprochen, als wir zwei Felder zusammengebaut haben zu einem Feld. Gerade im Zusammenhang mit einem Word-Seriendruck oder mit Listen für unsere Chef*innen kann das praktisch sein.
Das Beispiel damals war folgende Spalte, welche Vor- und Nachname zusammen in einer Spalte darstellt:
Reminder😉: der Code dazu sieht so aus:
SELECT tVorname || " " || tNachname AS Name FROM tblAngestellte;
Erweitern Sie diese Tabelle mit einer neuen Spalte, welche die PLZ und den Ort darstellt, und zwar so:
Passen Sie die Abfrage so an, dass nun das Land links von der Postleitzahl angezeigt wird, und zwar mit einem Bindestrich getrennt:
Jetzt kommen wir zur Knacknuss: dass bei Schweizer Adressen ebenfalls ein CH- davor steht, ist nicht schön. Das wollen wir beheben.
Erweitern Sie die Abfrage, dass die Länderangabe bei Schweizer Adressen nicht angezeigt wird, also etwa so:
Tipp: verwenden Sie die Funktion iif. Diese ist gleich einzusetzen wie die WENN-Funktion aus Excel.
Überlegen Sie sich in Ruhe, was genau dieses iif-Statement überhaupt macht:
iif(Country = "CH" , "" , Country || "-")
Hier sehen Sie als Erläuterung nochmals ein iif:
Die Funktion ist grundsätzlich gleich aufgebaut wie die WENN-Funktion in Excel: