🧚 Hör mal! Beekeeper Studio ist eine schnelle, moderne Open-Source-Datenbank-GUI Download
14. Februar 2024 Von Matthew Rathbone

Subtraktion ist nicht nur etwas für Zahlen! SQL Server bietet mehrere eingebaute Funktionen und Operatoren, die dir beim Subtrahieren von Zahlen und Datumswerten helfen. Und anders als mit Stift und Papier musst du immer an NULL denken. Legen wir mit ein paar Beispielen los.

Subtraktion in SQL Server verstehen

Subtraktion kommt in SQL Server typischerweise in zwei Situationen zum Einsatz: bei Berechnungen mit numerischen Daten und beim Bearbeiten von Datetime-Werten. Werte zu subtrahieren ist oft praktisch, wenn du berechnete Werte direkt in SQL Server erzeugen willst.

Einfache Subtraktion

Fangen wir mit einer einfachen Subtraktion an, um das Prinzip zu verdeutlichen. Angenommen, wir haben eine Tabelle namens „Orders“ mit den Spalten „TotalAmount“ und „DiscountAmount“.

SELECT TotalAmount, DiscountAmount, 
TotalAmount - DiscountAmount AS ActualAmount 
FROM Orders;

In diesem einfachen Beispiel ziehen wir „DiscountAmount“ von „TotalAmount“ ab und geben das Ergebnis als „ActualAmount“ aus.

Subtraktion bei Zeitintervallen

Subtraktion wird auch häufig genutzt, um die Differenz zwischen zwei Datetime-Werten zu berechnen. SQL Server hat mehrere Datums- und Zeittypen: smalldatetime, datetime, datetime2, datetimeoffset. Für die Datumssubtraktion können wir die Funktion DATEDIFF() verwenden.

Beispiel:

SELECT OrderID, OrderDate, 
DATEDIFF(day, OrderDate, GETDATE()) AS DaysElapsed 
FROM Orders;

Dieser Befehl berechnet und zeigt die Anzahl der Tage an, die seit jeder Bestellung bis heute vergangen sind (GETDATE liefert das heutige Datum).

Ergebnismengen mit Subtraktion in SQL Server aggregieren

Auch das Aggregieren von Ergebnismengen mit Subtraktion ist in SQL Server ziemlich üblich. Du musst zum Beispiel vielleicht den Gesamtumsatz eines Zeitraums aggregieren und davon die im selben Zeitraum gewährten Rabatte abziehen.

Beispiel:

SELECT 
( SELECT SUM(TotalAmount) FROM Orders where OrderDate like '2022-%' ) - 
( SELECT SUM(DiscountAmount) FROM Orders where OrderDate like '2022-%' ) as NetSales

Der obige Befehl zeigt den Nettoumsatz für das Jahr 2022 an, indem er die Gesamtrabatte vom Gesamtumsatz abzieht.

Umgang mit NULL

In SQL Server ergibt eine Subtraktion mit NULL einen NULL-Wert. Wenn du NULL lieber wie 0 behandeln möchtest, solltest du diese Fälle abfangen, um unerwartete NULLs in deinen Ergebnissen zu vermeiden. Das ist nicht immer sinnvoll, also entscheide mit Bedacht.

SELECT OrderID, 
ISNULL(TotalAmount, 0) - ISNULL(DiscountAmount, 0) AS NetAmount 
FROM Orders;

Jetzt bist du ein Subtraktions-Profi

Es gibt noch weitere Möglichkeiten, in SQL Server effektiv Werte zu subtrahieren. Probier also weiter mit diesen Befehlen herum und entdecke selbst noch mehr. Jede Abfrage, die du schreibst, bringt dich einen Schritt näher dahin, SQL Server zu meistern. Viel Spaß beim Abfragen!

Dieser Artikel wurde mit Blick auf SQL Server geschrieben. Alle Befehle und Erklärungen beziehen sich daher auf SQL Server. Wie diese Befehle in anderen Datenbank-Engines funktionieren, erfährst du in der offiziellen Dokumentation der jeweiligen Datenbank.

Beekeeper Studio ist eine kostenlose & quelloffene Datenbank-GUI

Das beste SQL-Abfrage- & Editor-Tool, das ich je benutzt habe. Es bietet alles, was ich zum Verwalten meiner Datenbank brauche. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio ist schnell, intuitiv und einfach zu bedienen. Beekeeper unterstützt jede Menge Datenbanken und läuft hervorragend auf Windows, Mac und Linux.

Die Linux-Version von Beekeeper hat 100% des Funktionsumfangs, ohne Abstriche und ohne Kompromisse.

Was Nutzer über Beekeeper Studio sagen

★★★★★
„Beekeeper Studio hat meinen alten SQL-Workflow komplett ersetzt. Es ist schnell, intuitiv und macht die Arbeit mit Datenbanken wieder zum Vergnügen.“
— Alex K., Datenbankentwickler
★★★★★
„Ich habe schon viele Datenbank-GUIs ausprobiert, aber Beekeeper findet die perfekte Balance zwischen Funktionsumfang und Einfachheit. Es funktioniert einfach.“
— Sarah M., Full-Stack-Entwicklerin

Bereit, deinen SQL-Workflow zu verbessern?

download Kostenlos herunterladen