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

Cách định dạng số bằng dấu phẩy trong SQL Server

SQL Server cung cấp cho chúng ta một cách nhanh chóng và dễ dàng để định dạng số có chèn dấu phẩy ở vị trí thích hợp. Ví dụ: 1234.56 có thể trở thành 1.234,56 . Hoặc nó có thể trở thành 1,234,56 , nếu đó là ngôn ngữ bạn đang sử dụng.

Ví dụ

Chúng ta có thể sử dụng FORMAT() hàm định dạng số bằng dấu phẩy. Khi chúng ta sử dụng hàm này, chúng ta chuyển một số và một chuỗi định dạng. Chuỗi định dạng xác định cách số sẽ được định dạng khi trả về.

FORMAT() hàm trả về một đại diện chuỗi được định dạng của số, dựa trên các giá trị mà chúng tôi cung cấp.

Dưới đây là một ví dụ để chứng minh:

 SELECT 
    FORMAT(123456.789, 'N') AS "Number",
    FORMAT(123456.789, 'P') AS "Percent",
    FORMAT(123456.789, 'C') AS "Currency"; 

Kết quả:

 + ------------ + ---------------- + ------------- + | Số | Phần trăm | Tiền tệ || ------------ + ---------------- + ------------- || 123.456,79 | 12.345.678,90% | 123.456,79 USD | + ------------ + ---------------- + ------------- +  

Ví dụ này minh họa ba trong số các chuỗi định dạng số tiêu chuẩn:

  • Nếu chúng tôi chỉ muốn số được định dạng, chúng tôi có thể sử dụng N
  • Nếu chúng tôi muốn nó được định dạng dưới dạng phần trăm, chúng tôi có thể sử dụng P
  • Đối với tiền tệ, chúng tôi có thể sử dụng C .

SQL Server đủ thông minh để biết ngôn ngữ hiện tại của bạn (dựa trên ngôn ngữ của phiên hiện tại) và định dạng kết quả theo quy ước của ngôn ngữ đó. Điều này rất quan trọng, bởi vì không phải ai cũng sống ở một quốc gia sử dụng dấu phẩy làm dấu phân cách hàng nghìn và dấu chấm đầy đủ làm dấu phân tách thập phân.

Hơn nữa, FORMAT() hàm chấp nhận đối số “văn hóa” tùy chọn thứ ba, cho phép bạn chỉ định rõ ràng ngôn ngữ.

Đây là một ví dụ về ý tôi muốn nói:

 SELECT 
    FORMAT(123456.789, 'N', 'de-de') AS "Number",
    FORMAT(123456.789, 'P', 'de-de') AS "Percent",
    FORMAT(123456.789, 'C', 'de-de') AS "Currency"; 

Kết quả:

 + ------------ + ----------------- + -------------- + | Số | Phần trăm | Tiền tệ || ------------ + ----------------- + -------------- || 123.456,79 | 12.345,678,90% | 123,456,79 € | + ------------ + ----------------- + ------------- - + 

Trong trường hợp này, tôi chỉ định de-de như văn hóa, có nghĩa là kết quả sẽ được định dạng theo quy ước của Đức. Chúng ta có thể thấy rằng các điểm dừng đầy đủ được sử dụng làm dấu phân tách nhóm và dấu phẩy được sử dụng cho dấu phân tách thập phân.

Nếu đối số thứ ba bị bỏ qua, ngôn ngữ của phiên hiện tại sẽ được sử dụng.

Chuỗi định dạng tùy chỉnh

Bạn cũng có thể sử dụng các mã định dạng tùy chỉnh để tạo chuỗi định dạng tùy chỉnh của riêng mình. Ví dụ:# ký tự là phần giữ chỗ chữ số, 0 là một trình giữ chỗ bằng 0, dấu phẩy (, ) là trình giữ chỗ cho dấu phân tách nhóm và là điểm dừng đầy đủ (. ) là phần giữ chỗ cho dấu phân tách thập phân.

Điều này đúng bất kể ngôn ngữ đang được sử dụng - SQL Server sẽ tìm ra ký tự nào sẽ sử dụng cho nhóm và dấu phân tách thập phân dựa trên ngôn ngữ hiện tại.

Ví dụ:

 SELECT 
    FORMAT(123456.789, '###,###,###.##', 'en-us') AS "US English",
    FORMAT(123456.789, '###,###,###.##', 'de-de') AS "German"; 

Kết quả:

 + -------------- + ------------ + | Tiếng Anh Mỹ | Tiếng Đức || -------------- + ------------ || 123.456,79 | 123,456,79 | + -------------- + ------------ + 

Trong cả hai trường hợp, tôi đã sử dụng cùng một chuỗi định dạng, nhưng SQL Server trả về nhóm và dấu phân tách thập phân áp dụng cho ngôn ngữ được chỉ định (được chỉ định bằng đối số “culture” thứ ba).

Trong ví dụ trên, chuỗi định dạng bao gồm nhiều chữ số hơn số thực. Bất kể, SQL Server đã chọn không trả về bất kỳ số 0 nào ở đầu. Đó là bởi vì chúng tôi đã sử dụng # định dạng.

Nếu chúng ta muốn SQL Server trả về các số 0 ở đầu, chúng ta có thể sử dụng 0 định dạng định dạng:

 SELECT 
    FORMAT(123456.789, '000,000,000.00', 'en-us') AS "US English",
    FORMAT(123456.789, '000,000,000.00', 'de-de') AS "German"; 

Kết quả:

 + ---------------- + ---------------- + | Tiếng Anh Mỹ | Tiếng Đức || ---------------- + ---------------- || 000.123.456,79 | 000.123.456,79 | + ---------------- + ---------------- + 

  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 xóa khoảng trắng theo sau trong SQL Server - RTRIM ()

  2. Sử dụng lược đồ cơ sở dữ liệu trong SQL Server

  3. cơ sở dữ liệu đính kèm chỉ đọc

  4. Làm cách nào để trả về nhiều tập kết quả với SqlCommand?

  5. Cú pháp không chính xác gần ''