ROUND (Transact-SQL)
Gibt einen numerischen Wert zurück, der auf die angegebene Länge oder Genauigkeit gerundet wurde.
ROUND gibt immer einen Wert zurück. Ist length negativ und sein Wert größer als die Anzahl der Stellen vor dem Dezimaltrennzeichen, gibt ROUND den Wert 0 zurück.
Beispiel | Ergebnis |
|---|---|
ROUND(748.58, -4) | 0 |
Unabhängig vom Datentyp gibt ROUND numeric_expression gerundet zurück, wenn length eine negative Zahl ist.
Beispiele | Ergebnis |
|---|---|
ROUND(748.58, -1) | 750.00 |
ROUND(748.58, -2) | 700.00 |
ROUND(748.58, -3) | Verursacht einen arithmetischen Überlauffehler, da 748.58 standardmäßig zu decimal(5,2) wird und eine Rückgabe von 1000.00 nicht möglich ist. |
Um bis auf 4 Stellen aufzurunden, ändern Sie den Datentyp für die Eingabe. Beispiel: SELECT ROUND(CAST (748.58 AS decimal (6,2)),-3); | 1000.00 |
A. Verwenden von ROUND und Schätzwerten
Im folgenden Beispiel werden zwei Ausdrücke gezeigt, die veranschaulichen, dass mit ROUND die letzte Ziffer immer ein Näherungswert ist.
SELECT ROUND(123.9994, 3), ROUND(123.9995, 3) GO
Dies ist das Resultset.
----------- ----------- 123.9990 124.0000
B. Verwenden von ROUND und gerundeten Näherungswerten
Das folgende Beispiel zeigt das Runden und die Näherungsberechnung von Werten.
SELECT ROUND(123.4545, 2); GO SELECT ROUND(123.45, -2); GO
Dies ist das Resultset.
----------
123.4500
(1 row(s) affected)
--------
100.00
(1 row(s) affected)
C. Verwenden von ROUND zum Kürzen
Das folgende Beispiel verwendet zwei SELECT-Anweisungen, um den Unterschied zwischen dem Runden und dem Kürzen zu verdeutlichen. Die erste Anweisung rundet das Ergebnis. Die zweite Anweisung kürzt das Ergebnis.
SELECT ROUND(150.75, 0); GO SELECT ROUND(150.75, 0, 1); GO
Dies ist das Resultset.
-------- 151.00 (1 row(s) affected) -------- 150.00 (1 row(s) affected)