ROUND (Transact-SQL)

Gilt für:yesSQL Server (alle unterstützten Versionen) YesAzure SQL-Datenbank YesAzure SQL Managed Instance yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

Gibt einen numerischen Wert zurück, der auf die angegebene Länge oder Genauigkeit gerundet wurde.

Topic link iconTransact-SQL-Syntaxkonventionen

Syntax

ROUND ( numeric_expression , length [ ,function ] )  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 oder früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

numeric_expression
Ein Ausdruck der genauen numerischen oder ungefähren numerischen Datentypkategorie, mit Ausnahme des bit-Datentyps.

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 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), ROUND(123.45, -2);  

Hier ist das Resultset.

----------  ----------
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 ist das Resultset.

--------  
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)