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

Cách hoạt động của hàm STR () trong SQL Server (T-SQL)

Trong SQL Server, T-SQL STR() hàm trả về dữ liệu ký tự được chuyển đổi từ dữ liệu số. Giá trị trả về có kiểu trả về là varchar .

Bạn cung cấp dữ liệu số làm đối số khi gọi hàm. Sau đó, hàm sẽ chuyển nó thành dữ liệu ký tự. Ngoài ra còn có hai đối số tùy chọn mà bạn có thể sử dụng để chỉ định độ dài và số vị trí ở bên phải dấu thập phân.

Cú pháp

Cú pháp như sau:

STR ( float_expression [ , length [ , decimal ] ] )

Trong đó float_expression là một biểu thức của số gần đúng ( float ) kiểu dữ liệu có dấu thập phân.

chiều dài là một đối số tùy chọn mà bạn có thể sử dụng để chỉ định tổng độ dài. Điều này bao gồm dấu thập phân, dấu, chữ số và dấu cách. Giá trị mặc định là 10.

thập phân là số vị trí ở bên phải của dấu thập phân. Đây có thể là giá trị tối đa là 16. Nếu nhiều hơn, giá trị này sẽ bị cắt ngắn thành 16.

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

Dưới đây là một ví dụ về cách nó hoạt động:

SELECT STR(123.45) AS Result;

Kết quả:

+------------+
| Result     |
|------------|
|        123 |
+------------+

Ví dụ 2 - Làm tròn

Theo mặc định, số được làm tròn thành số nguyên. Nếu chúng ta điều chỉnh đầu vào từ ví dụ trước (ví dụ:tăng phần phân số từ .45 thành .55 ) chúng tôi nhận được những điều sau:

SELECT STR(123.55) AS Result;

Kết quả:

+------------+
| Result     |
|------------|
|        124 |
+------------+

Ví dụ 3 - Chiều dài

Khi sử dụng length tùy chọn , giá trị của nó phải lớn hơn hoặc bằng một phần của số trước dấu thập phân cộng với dấu của số (nếu có).

Ví dụ:điều sau là tốt, vì length lớn hơn một phần của số trước dấu thập phân:

SELECT STR(123.55, 4) AS Result;

Kết quả:

+----------+
| Result   |
|----------|
|  124     |
+----------+

Tuy nhiên, ví dụ sau minh họa điều gì sẽ xảy ra khi length giá trị quá nhỏ:

SELECT STR(123.55, 2) AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| **       |
+----------+

Cũng lưu ý rằng length xác định độ dài của đầu ra và bao gồm dấu thập phân, dấu hiệu, chữ số và dấu cách. Độ dài mặc định là 10.

Dưới đây là một ví dụ để chứng minh sự khác biệt về đầu ra tùy thuộc vào giá trị của length đối số:

SELECT 
  123 AS '123',
  STR(123, 3) AS '3',
  STR(123, 10) AS '10',
  STR(123, 16) AS '16';

Kết quả:

+-------+-----+------------+------------------+
| 123   | 3   | 10         | 16               |
|-------+-----+------------+------------------|
| 123   | 123 |        123 |              123 |
+-------+-----+------------+------------------+

Để có một cách khác để chứng minh điều này, trong ví dụ sau, tôi cắt đầu ra bằng cách sử dụng TRIM() chức năng (và so sánh nó với phiên bản không bị xóa):

SELECT 
  TRIM(STR(123, 16)) AS 'A',
  STR(123, 16) AS 'B';

Kết quả:

+-----+------------------+
| A   | B                |
|-----+------------------|
| 123 |              123 |
+-----+------------------+

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

Dưới đây là một ví dụ về việc sử dụng thập phân tùy chọn tham số:

SELECT STR(123.55, 8, 4) AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 123.5500 |
+----------+

Lưu ý rằng tôi đã tăng giá trị cho length để chứa các chữ số thập phân.

Nếu tôi giảm length giá trị thành 6 , Tôi nhận được cái này:

SELECT STR(123.55, 6, 4) AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 123.55   |
+----------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SSMS hiện đi kèm với Azure Data Studio

  2. Cách kiểm tra ổ khóa nào được giữ trên bàn

  3. Cách giải quyết không thể chuyển đổi lỗi mã hóa khi chèn XML vào SQL Server

  4. Khám phá cơ sở dữ liệu khôi phục máy chủ SQL với tùy chọn khôi phục so với không khôi phục

  5. Ràng buộc cơ sở dữ liệu là gì?