Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Ví dụ về ROUND () trong SQL Server

Trong SQL Server, T-SQL ROUND() hàm cho phép bạn làm tròn một số đến độ dài hoặc độ chính xác được chỉ định.

Bạn cung cấp số dưới dạng đối số, cũng như độ dài bạn muốn số được làm tròn. Hàm cũng chấp nhận đối số thứ ba tùy chọn cho phép bạn chỉ định số được làm tròn hay cắt bớt.

Cú pháp

Cú pháp như sau:

ROUND ( numeric_expression , length [ ,function ] )  

Trường hợp các đối số có các định nghĩa sau:

numeric_expression
Là một biểu thức của danh mục kiểu dữ liệu số chính xác hoặc số gần đúng, ngoại trừ bit kiểu dữ liệu.
chiều dài
Là độ chính xác mà numeric_expression là được làm tròn. Đối số này phải là một biểu thức của loại tinyint , smallint hoặc int . Khi đó là một số dương, numeric_expression được làm tròn đến số vị trí thập phân được chỉ định bởi đối số này. Khi đó là số âm, numeric_expression được làm tròn ở bên trái của dấu thập phân, như được chỉ định bởi đối số này.
Hàm
Là loại hoạt động cần thực hiện. Đây phải là tinyint , smallint hoặc int . Khi đối số này bị bỏ qua hoặc có giá trị 0 (mặc định), numeric_expression được làm tròn. Khi một giá trị khác 0 được chỉ định, numeric_expression bị cắt ngắn.

Ví dụ 1 - Cách sử dụng cơ bản

Dưới đây là một ví dụ cơ bản để chứng minh cách hoạt động của chức năng này.

SELECT ROUND(1.49, 1) Result;

Kết quả:

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

Trong trường hợp này, số được làm tròn.

Ví dụ 2 - Vị trí thập phân 0

Nếu chúng tôi đặt đối số thứ hai thành 0, đây là điều sẽ xảy ra:

SELECT ROUND(1.49, 0) Result;

Kết quả:

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

Điều này là do chúng tôi đã chỉ định phần không phân số để làm tròn số.

Và đây là những gì sẽ xảy ra nếu tôi thay đổi số ban đầu thành 1,50:

SELECT ROUND(1.50, 0) Result;

Kết quả:

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

Ví dụ 3 - Thêm Vị trí Thập phân

Dưới đây là một ví dụ trong đó số được làm tròn chứa nhiều chữ số thập phân hơn.

SELECT ROUND(1.234, 2) Result;

Kết quả:

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

Và đây là những gì sẽ xảy ra khi tôi tăng chữ số cuối cùng lên 5:

SELECT ROUND(1.235, 2) Result;

Kết quả:

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

Tất nhiên, chúng ta có thể sử dụng nhiều chữ số thập phân hơn. Ví dụ:chúng tôi có thể cắt bớt rất nhiều chữ số thập phân.

SELECT ROUND(1.23456789123456789, 8) Result;

Kết quả:

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

Ví dụ 4 - Cắt ngắn (tức là sử dụng đối số thứ ba)

Như đã đề cập, chúng ta có thể cung cấp đối số thứ ba để chỉ định xem kết quả là bị cắt bớt hay chỉ làm tròn. Các ví dụ trước đều được làm tròn vì chúng tôi không chỉ định đối số thứ ba. Khi chúng ta bỏ qua đối số thứ ba, giá trị 0 được sử dụng (có nghĩa là làm tròn kết quả). Nếu chúng tôi cung cấp giá trị khác 0, kết quả sẽ bị cắt bớt.

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

Kết quả:

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

Ví dụ 5 - Sử dụng Giá trị Phủ định cho Đối số Thứ hai

Dưới đây là cách chúng tôi có thể sử dụng giá trị âm trên đối số thứ hai để làm cho các phần của phần không phải là phân số được làm tròn thành 0.

SELECT ROUND(123.456, -1) Result;

Kết quả:

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

Và đây là cách nó được làm tròn nếu chúng ta tăng 3 thành 5 trở lên.

SELECT ROUND(125.456, -1) Result;

Kết quả:

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

Bạn có thể làm điều này ngay cả khi số không chứa phần phân số.

SELECT ROUND(125, -1) Result;

Kết quả:

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

Ví dụ 6 - Làm tròn số âm so với số dương

Như đã thấy trong các ví dụ trước, khi sử dụng số dương, giá trị có phần thập phân là .5 trở lên được làm tròn thành số nguyên tiếp theo.

Tuy nhiên, khi sử dụng số âm, các giá trị như vậy được làm tròn xuống .

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

Kết quả:

+------------+------------+
| 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. Cách DENSE_RANK () hoạt động trong SQL Server

  2. Định dạng SQL trong SQL Server Management Studio

  3. Các cải tiến tempdb trong SQL Server 2019

  4. Chuyển đổi ‘smalldatetime’ thành ‘datetimeoffset’ trong SQL Server (Ví dụ T-SQL)

  5. Sự khác biệt giữa Bảo mật Tích hợp =Đúng và Bảo mật Tích hợp =SSPI là gì?