ROUND (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric
Gibt einen numerischen Wert zurück, der auf die angegebene Länge oder Genauigkeit gerundet wurde.
Transact-SQL-Syntaxkonventionen
Syntax
ROUND ( numeric_expression , length [ ,function ] )
Argumente
numeric_expression
Ist ein Ausdruck der exakten numerischen oder ungefähren numerischen Datentypkategorie.
length
Dies entspricht der Genauigkeit, auf die numeric_expression gerundet werden soll. length muss ein Ausdruck vom Typ tinyint, smallint oder int sein. Wenn length eine positive Zahl ist, wird numeric_expression auf die Anzahl der durch length angegebenen Dezimalstellen gerundet. Wenn length eine negative Zahl ist, wird numeric_expression wie durch lengthangegeben auf der linken Seite des Dezimaltrennzeichens gerundet.
Funktion
Die Art der auszuführenden Operation. function muss vom Typ tinyint, smallint oder int sein. Wenn function fehlt oder den Wert 0 (Standard) hat, wird numeric_expression gerundet. Wird nicht der Wert 0 angegeben, wird numeric_expression abgeschnitten.
Rückgabetypen
Gibt die folgenden Datentypen zurück.
Ausdrucksergebnis | Rückgabetyp |
---|---|
tinyint | int |
smallint | int |
int | int |
bigint | bigint |
decimal- und numeric-Kategorie (p, s) | decimal(p, s) |
money- und smallmoney-Kategorie | money |
float- und real-Kategorie | float |
Hinweise
ROUND gibt immer einen Wert zurück. Ist length negativ und der 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); |
1.000,00 |
Beispiele
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
Hier sehen Sie das Ergebnis.
----------- -----------
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), ROUND(123.45, -2);
Hier sehen Sie das Ergebnis.
---------- ----------
123.4500 100.00
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
Hier sehen Sie das Ergebnis.
--------
151.00
(1 row(s) affected)
--------
150.00
(1 row(s) affected)
Weitere Informationen
CEILING (Transact-SQL)
Datentypen (Transact-SQL)
Ausdrücke (Transact-SQL)
FLOOR (Transact-SQL)
Mathematische Funktionen (Transact-SQL)