Runden und Abschneiden
ROUND, CEIL, FLOOR und TRUNC
Runden und Abschneiden ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Warum Runden wichtig ist
Bei der Arbeit mit Zahlen in SQL erhalten Sie häufig Ergebnisse mit vielen Dezimalstellen. Beispielsweise ergibt die Division von 10 durch 3 3.3333333...
SQL stellt integrierte Funktionen bereit, mit denen Sie steuern, wie viele Dezimalstellen Sie anzeigen oder speichern: ROUND, CEIL, FLOOR und TRUNC. Diese sind unerlässlich, um übersichtliche Finanzwerte, Messwerte und Statistiken darzustellen.
SELECT 10.0 / 3.0 AS raw_result;ROUND: Grundlagen
Die Funktion ROUND() rundet eine Zahl auf eine angegebene Anzahl von Dezimalstellen. Sie folgt den üblichen Rundungsregeln: Ziffern ab 5 werden aufgerundet, Ziffern unter 5 abgerundet.
Die Syntax lautet: ROUND(number, decimal_places). Wenn Sie das zweite Argument weglassen, wird auf die nächste ganze Zahl gerundet.
SELECT
ROUND(3.14159, 2) AS two_decimals,
ROUND(3.14159, 0) AS zero_decimals,
ROUND(3.14159) AS no_arg;ROUND mit negativen Stellen
Eine weniger bekannte Eigenschaft von ROUND() ist, dass Sie als zweites Argument eine negative Zahl übergeben können. Dadurch wird links vom Dezimaltrennzeichen gerundet — nützlich zum Runden auf den nächsten Zehner, Hunderter oder Tausender.
Beispielsweise rundet ROUND(1567, -2) auf den nächsten Hunderter und ergibt 1600.
SELECT
ROUND(1567.89, -1) AS nearest_ten,
ROUND(1567.89, -2) AS nearest_hundred,
ROUND(1567.89, -3) AS nearest_thousand;CEIL: Immer aufrunden
CEIL() (in manchen Datenbanken auch als CEILING() geschrieben) rundet eine Zahl unabhängig vom Dezimalanteil immer auf die nächste ganze Zahl auf.
Das ist nützlich, wenn Sie sicherstellen müssen, dass ein Mindestwert nicht unterschritten wird — beispielsweise beim Berechnen der erforderlichen Seitenzahl zur Darstellung einer Ergebnismenge.
SELECT
CEIL(4.1) AS ceil_4_1,
CEIL(4.9) AS ceil_4_9,
CEIL(-4.1) AS ceil_neg_4_1,
CEIL(-4.9) AS ceil_neg_4_9;FLOOR: Immer abrunden
FLOOR() rundet eine Zahl unabhängig vom Dezimalanteil immer auf die nächste ganze Zahl ab.
Beachten Sie, dass FLOOR bei negativen Zahlen von null weg rundet — FLOOR(-4.1) ergibt -5 und nicht -4. Dieses Verhalten ist das Gegenteil dessen, was manche Anfänger erwarten.
SELECT
FLOOR(4.9) AS floor_4_9,
FLOOR(4.1) AS floor_4_1,
FLOOR(-4.1) AS floor_neg_4_1,
FLOOR(-4.9) AS floor_neg_4_9;CEIL und FLOOR im Vergleich
Wenn man CEIL und FLOOR gemeinsam betrachtet, wird der Unterschied schnell deutlich. CEIL rundet immer zur nächsten ganzen Zahl auf, während FLOOR immer abrundet.
Stellen Sie es sich wie bei einem Gebäude vor: FLOOR ist die Bodenebene, auf die Sie fallen, CEIL die Decke, zu der Sie aufsteigen.
SELECT
2.3 AS original,
CEIL(2.3) AS ceil_result,
FLOOR(2.3) AS floor_result
UNION ALL
SELECT
7.8,
CEIL(7.8),
FLOOR(7.8);TRUNC: Abschneiden ohne Runden
TRUNC() (in MySQL auch TRUNCATE()) entfernt Dezimalziffern ohne Rundung. Die Ziffern nach der angegebenen Position werden einfach abgeschnitten.
Das unterscheidet sich von ROUND — TRUNC(4.9) ergibt 4 und nicht 5. Der Dezimalanteil wird einfach verworfen.
SELECT
TRUNC(4.9) AS trunc_4_9,
TRUNC(4.1) AS trunc_4_1,
TRUNC(-4.9) AS trunc_neg_4_9,
TRUNC(3.14159, 3) AS trunc_3_decimals;ROUND und TRUNC im Vergleich
Der entscheidende Unterschied zwischen ROUND und TRUNC besteht darin, dass ROUND den Wert anhand der nächsten Ziffer verändert, während TRUNC nach der Schnittstelle immer alles ohne Anpassung verwirft.
Verwenden Sie ROUND, wenn Sie den mathematisch nächstgelegenen Wert erhalten möchten. Verwenden Sie TRUNC, wenn Sie die Genauigkeit strikt ohne Aufrundung reduzieren möchten — häufig bei Finanzberechnungen, bei denen Sie niemals zu viel zahlen dürfen.
SELECT
ROUND(2.567, 1) AS rounded,
TRUNC(2.567, 1) AS truncated;
-- ROUND gives 2.6 (5 rounds up)
-- TRUNC gives 2.5 (just cuts off)ROUND in einer echten Tabelle verwenden
Rundungsfunktionen sind besonders leistungsfähig, wenn sie auf Tabellenspalten angewendet werden. Hier erstellen wir eine einfache Tabelle products mit Preisen und wenden ROUND an, um sie übersichtlich darzustellen.
Dieses Muster ist in Abfragen für E-Commerce und Buchhaltung sehr verbreitet, wenn Rohberechnungen viele Dezimalstellen ergeben.
CREATE TABLE products (
name TEXT,
price NUMERIC
);
INSERT INTO products VALUES
('Widget', 9.999),
('Gadget', 24.3333),
('Doohickey', 4.5678);
SELECT name, ROUND(price, 2) AS display_price
FROM products;Funktionen in einer Abfrage kombinieren
Sie können Rundungsfunktionen mit anderen SQL-Ausdrücken kombinieren. Berechnen Sie beispielsweise einen rabattierten Preis und runden Sie ihn anschließend zur Anzeige.
Diese Abfrage wendet einen Rabatt von 15 % an, rundet das Ergebnis auf 2 Dezimalstellen und zeigt außerdem FLOOR und CEIL des rabattierten Preises an — damit erhalten Sie die kleinsten und größten ganzzahligen Preise.
SELECT
name,
price,
ROUND(price * 0.85, 2) AS discounted,
FLOOR(price * 0.85) AS min_price,
CEIL(price * 0.85) AS max_price
FROM products;Paginierung mit CEIL
Eine klassische Anwendung von CEIL ist die Berechnung der Gesamtseitenzahl in einem Paginierungssystem. Wenn Sie 97 Zeilen haben und 10 pro Seite anzeigen, benötigen Sie CEIL(97 / 10.0) = 10 Seiten (nicht 9, da die letzte Seite 7 Zeilen enthält).
Teilen Sie immer durch eine Dezimalzahl (10.0 statt 10), um Ganzzahldivision zu vermeiden, die den Rest verwerfen würde, bevor CEIL ihn berücksichtigen kann.
SELECT
97 AS total_rows,
10 AS rows_per_page,
CEIL(97 / 10.0) AS total_pages;Kurzer Test
Testen Sie Ihr Verständnis der Rundungsfunktionen in SQL.
Zusammenfassung der Lektion
Gute Arbeit! Hier ist eine Zusammenfassung der Rundungs- und Abschneidefunktionen in SQL:
- ROUND(n, d) — rundet nach den üblichen mathematischen Regeln auf d Dezimalstellen (ab 5 wird aufgerundet).
- CEIL(n) — rundet immer auf die nächste ganze Zahl auf.
- FLOOR(n) — rundet immer auf die nächste ganze Zahl ab.
- TRUNC(n, d) — entfernt Ziffern nach Position d ohne Rundung; der Wert wird niemals erhöht.
Verwenden Sie ROUND für Darstellung und Statistiken, CEIL für Berechnungen von Mindestkapazitäten (z. B. Seiten), FLOOR für Berechnungen, wie viele Elemente maximal hineinpassen, und TRUNC, wenn niemals aufgerundet werden darf — insbesondere im Finanzbereich.
Häufig gestellte Fragen
Ist die Lektion „Runden und Abschneiden“ kostenlos?
Ja — der vollständige Text von „Runden und Abschneiden“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Runden und Abschneiden“?
ROUND, CEIL, FLOOR und TRUNC Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um SQL Academy zu starten?
Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Runden und Abschneiden“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?
Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Arithmetik und Operatoren
- Runden und Abschneiden
- Ganzzahl- vs. Dezimaldivision
- Nützliche mathematische Funktionen