Freigeben über


RUNDE (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Analyseendpunkt in Microsoft FabricLagerhaus in Microsoft FabricSQL-Datenbank 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

Ein Ausdruck der genauen numerischen oder ungefähren numerischen Datentypkategorie.

length

Die Präzision, mit der numeric_expression abgerundet werden muss. 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 Operation, die durchgeführt werden soll. Funktion muss Tinyint, Smallint oder Int sein. Wenn die Funktion weggelassen wird oder einen Wert von 0 (Standard) hat, wird numeric_expression gerundet. Wenn ein anderer als 0 angegebener Wert angegeben ist, 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) Dezimal(p, s)
money- und smallmoney-Kategorie money
float- und real-Kategorie float

Hinweise

  • ROUND Gibt immer einen Wert zurück. Ist die Länge negativ und größer als die Anzahl der Ziffern vor dem Dezimalpunkt, ROUND ergibt .0

    Beispiel Ergebnis
    ROUND(748.58, -4) 0
  • ROUNDgibt unabhängig vom Datentyp eine gerundete numeric_expression zurück, wenn die Länge eine negative Zahl ist.

    Beispiele Ergebnis
    ROUND(748.58, -1) 750,00
    ROUND(748.58, -2) 700,00
    ROUND(748.58, -3) Führt zu einem arithmetischen Überlauf, weil 748,58 standardmäßig auf Dezimal(5, 2) zurückgeht, was nicht zurückgeben 1000.00kann.
  • Um auf vier Ziffern aufzurunden, ändert man den Datentyp der Eingabe. Beispiel:

    SELECT ROUND(CAST (748.58 AS DECIMAL (6, 2)), -3);
    

    Hier sehen Sie das Ergebnis.

    1000.00
    
  • ROUND Beendet Gleichstand, indem man die Hälfte von Null abrundet (auch bekannt als kommerzielles Runden).

    Beispiele Ergebnis
    ROUND(1.15, 1) 1.2
    ROUND(-1.15, 1) -1.2

Beispiele

A. Verwenden Sie ROUND und Schätzungen

Das folgende Beispiel zeigt zwei Ausdrücke, die zeigen, indem ROUNDdie letzte Ziffer immer eine Schätzung ist.

SELECT ROUND(123.9994, 3),
       ROUND(123.9995, 3);
GO

Hier sehen Sie das Ergebnis.

----------- -----------
123.9990    124.0000

B. Verwenden Sie RUND- und Rundungsapproximationen

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. Benutze ROUND zum Abkü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

Hier sehen Sie das Ergebnis.

151.00
SELECT ROUND(150.75, 0, 1);
GO

Hier sehen Sie das Ergebnis.

150.00