Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

ROUND() Przykłady w SQL Server

W SQL Server funkcja T-SQL ROUND() funkcja pozwala zaokrąglić liczbę do określonej długości lub precyzji.

Podajesz liczbę jako argument, a także długość, do której chcesz zaokrąglić liczbę. Funkcja akceptuje również opcjonalny trzeci argument, który pozwala określić, czy liczba jest zaokrąglana, czy skrócona.

Składnia

Składnia wygląda tak:

ROUND ( numeric_expression , length [ ,function ] )  

Gdzie argumenty mają następujące definicje:

wyrażenie_numeryczne
Jest wyrażeniem dokładnie numerycznej lub przybliżonej numerycznej kategorii danych, z wyjątkiem bitu typ danych.
długość
Czy precyzja, z jaką numeric_expression ma być zaokrąglona. Ten argument musi być wyrażeniem typu tinyint , mały lub int . Jeśli jest to liczba dodatnia, numeric_expression jest zaokrąglana do liczby miejsc dziesiętnych określonych przez ten argument. Jeśli jest to liczba ujemna, numeric_expression jest zaokrąglana po lewej stronie przecinka dziesiętnego, jak określono w tym argumencie.
funkcja
Jest typem operacji do wykonania. To musi być niewielkie , mały lub int . Gdy ten argument jest pominięty lub ma wartość 0 (domyślnie), numeric_expression jest zaokrąglony. Gdy określono wartość inną niż 0, numeric_expression jest obcięty.

Przykład 1 – Podstawowe użycie

Oto podstawowy przykład pokazujący, jak działa ta funkcja.

SELECT ROUND(1.49, 1) Result;

Wynik:

+----------+
| Result   |
|----------|
| 1.50     |
+----------+

W tym przypadku liczba jest zaokrąglana w górę.

Przykład 2 – Zero miejsc dziesiętnych

Jeśli ustawimy drugi argument na zero, oto co się dzieje:

SELECT ROUND(1.49, 0) Result;

Wynik:

+----------+
| Result   |
|----------|
| 1.00     |
+----------+

Dzieje się tak, ponieważ określiliśmy zerowe części ułamkowe, którymi należy zaokrąglić liczbę.

A oto co się stanie, jeśli zmienię początkową liczbę na 1,50:

SELECT ROUND(1.50, 0) Result;

Wynik:

+----------+
| Result   |
|----------|
| 2.00     |
+----------+

Przykład 3 – Więcej miejsc dziesiętnych

Oto przykład, w którym liczba do zaokrąglenia zawiera więcej miejsc po przecinku.

SELECT ROUND(1.234, 2) Result;

Wynik:

+----------+
| Result   |
|----------|
| 1.230    |
+----------+

A oto, co się stanie, gdy zwiększę ostatnią cyfrę do 5:

SELECT ROUND(1.235, 2) Result;

Wynik:

+----------+
| Result   |
|----------|
| 1.240    |
+----------+

Oczywiście moglibyśmy użyć znacznie więcej miejsc po przecinku. Na przykład możemy skrócić wiele miejsc po przecinku.

SELECT ROUND(1.23456789123456789, 8) Result;

Wynik:

+---------------------+
| Result              |
|---------------------|
| 1.23456789000000000 |
+---------------------+

Przykład 4 – Obcięcie (tj. użycie trzeciego argumentu)

Jak wspomniano, możemy podać trzeci argument, aby określić, czy wynik jest obcięty, czy tylko zaokrąglony. Wszystkie poprzednie przykłady są zaokrąglone, ponieważ nie podaliśmy trzeciego argumentu. Gdy pominiemy trzeci argument, używana jest wartość 0 (co oznacza zaokrąglenie wyniku). Jeśli podamy wartość inną niż 0, wynik zostanie obcięty.

SELECT 
  ROUND(1.236, 2) 'Rounded (by default)',
  ROUND(1.236, 2, 0) 'Rounded (explicitly)',
  ROUND(1.236, 2, 1) 'Truncated';

Wynik:

+------------------------+------------------------+-------------+
| Rounded (by default)   | Rounded (explicitly)   | Truncated   |
|------------------------+------------------------+-------------|
| 1.240                  | 1.240                  | 1.230       |
+------------------------+------------------------+-------------+

Przykład 5 – użycie wartości ujemnej w drugim argumencie

Oto jak możemy użyć wartości ujemnej drugiego argumentu, aby spowodować zaokrąglenie części nieułamkowej do zera.

SELECT ROUND(123.456, -1) Result;

Wynik:

+----------+
| Result   |
|----------|
| 120.000  |
+----------+

A oto jak to się zaokrągla, jeśli zwiększymy 3 do 5 lub więcej.

SELECT ROUND(125.456, -1) Result;

Wynik:

+----------+
| Result   |
|----------|
| 130.000  |
+----------+

Możesz to zrobić, nawet jeśli liczba nie zawiera części ułamkowej.

SELECT ROUND(125, -1) Result;

Wynik:

+----------+
| Result   |
|----------|
| 130      |
+----------+

Przykład 6 – Zaokrąglanie liczb ujemnych a liczb dodatnich

Jak widać w poprzednich przykładach, podczas używania liczb dodatnich, wartość z częścią ułamkową 0,5 lub większą jest zaokrąglana w górę do następnej liczby całkowitej.

Jednak w przypadku liczb ujemnych takie wartości są zaokrąglane w dół .

SELECT 
  ROUND(1.50, 0) Positive,
  ROUND(-1.50, 0) Negative;

Wynik:

+------------+------------+
| Positive   | Negative   |
|------------+------------|
| 2.00       | -2.00      |
+------------+------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyświetl listę wszystkich baz danych z serwera połączonego w programie SQL Server (przykłady T-SQL)

  2. Jak mogę ogólnie posortować kolumnę „Numer wersji” za pomocą zapytania SQL Server?

  3. Wartości oddzielone przecinkami za pomocą zapytania SQL

  4. Klauzula wyjściowa SQL Server do zmiennej skalarnej

  5. Wydajność zapytania SQL Server 2005