Udostępnij za pomocą


RUNDA (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Zwraca wartość liczbową, zaokrągloną do określonej długości lub precyzji.

Transact-SQL konwencje składni

Składnia

ROUND ( numeric_expression , length [ , function ] )

Arguments

numeric_expression

Wyrażenie dokładnej kategorii numerycznego lub przybliżonego numerycznego typu danych.

length

Precyzja, do jakiej numeric_expression ma być zaokrąglona. Długość musi być wyrażeniem typu tinyint, smallint lub int. Gdy długość jest liczbą dodatnią, numeric_expression jest zaokrąglana do liczby pozycji dziesiętnych określonej przez długość. Gdy długość jest liczbą ujemną, numeric_expression jest zaokrąglona po lewej stronie przecinka dziesiętnego, zgodnie z długością.

funkcja

Rodzaj operacji do wykonania. funkcja musi być tinyint, smallint lub int. Gdy funkcja jest pomijana lub ma wartość ( 0 domyślną), numeric_expression jest zaokrąglana. Gdy wartość inna niż 0 jest określona, numeric_expression jest obcięta.

Typy zwracane

Zwraca następujące typy danych.

Wynik wyrażenia Typ zwracany
tinyint int
smallint int
int int
bigint bigint
Kategoria dziesiętna i liczbowa (P, S) dziesiętny (p, s)
Kategoria pieniędzy i drobnych pieniędzy pieniędzy
Kategoria float i rzeczywiste float

Uwagi

  • ROUND zawsze zwraca wartość. Jeśli długość jest ujemna i większa niż liczba cyfr przed przecinkiem dziesiętnym, ROUND zwraca 0.

    Example Wynik
    ROUND(748.58, -4) 0
  • ROUND zwraca zaokrągloną numeric_expression, niezależnie od typu danych, gdy długość jest liczbą ujemną.

    Przykłady Wynik
    ROUND(748.58, -1) 750.00
    ROUND(748.58, -2) 700,00
    ROUND(748.58, -3) Skutkuje przepełnieniem arytmetyki, ponieważ 748.58 domyślnie przyjmuje dziesiętny(5, 2), który nie może zwrócić 1000.00.
  • Aby zaokrąglić do czterech cyfr, zmień typ danych danych wejściowych. Przykład:

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

    Oto zestaw wyników.

    1000.00
    
  • ROUND przerywa remis, zaokrąglając o połowę od zera (znane również jako zaokrąglanie komercyjne).

    Przykłady Wynik
    ROUND(1.15, 1) 1.2
    ROUND(-1.15, 1) -1.2

Przykłady

A. Użyj ROUND i szacunków

Poniższy przykład pokazuje dwa wyrażenia, które pokazują, że używając ROUND, ostatnia cyfra jest zawsze estymacją.

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

Oto zestaw wyników.

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

B. Użyj ROUND i przybliżeń zaokrągleń

Poniższy przykład pokazuje zaokrąglenie i przybliżenia.

SELECT ROUND(123.4545, 2),
       ROUND(123.45, -2);

Oto zestaw wyników.

----------  ----------
123.4500    100.00

C. Użyj ROUND do skracania

Poniższy przykład wykorzystuje dwa SELECT stwierdzenia, aby pokazać różnicę między zaokrągleniem a obcięciem. Pierwsze zdanie zaokrągla wynik. Drugie zdanie skraca wynik.

SELECT ROUND(150.75, 0);
GO

Oto zestaw wyników.

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

Oto zestaw wyników.

150.00