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

Định dạng SQL Server các vị trí thập phân với dấu phẩy

Rất may (?), Trong SQL Server 2012+ , bạn hiện có thể sử dụng FORMAT () để đạt được điều này:

FORMAT(@s,'#,0.0000')

Trong các phiên bản trước, có nguy cơ trông thật xấu xí

[Truy vấn] :

declare @s decimal(18,10);
set @s = 1234.1234567;
select replace(convert(varchar,cast(floor(@s) as money),1),'.00',
    '.'+right(cast(@s * 10000 +10000.5 as int),4))

Trong phần đầu tiên, chúng tôi sử dụng MONEY-> VARCHAR để tạo dấu phẩy, nhưng FLOOR () được sử dụng để đảm bảo các số thập phân chuyển đến .00 . Điều này có thể dễ dàng nhận biết và được thay thế bằng 4 chữ số sau chữ số thập phân bằng cách sử dụng hỗn hợp dịch chuyển (*10000 ) và CAST dưới dạng INT (cắt ngắn) để lấy ra các chữ số.

[Kết quả] :

|   COLUMN_0 |
--------------
| 1,234.1235 |

Nhưng trừ khi bạn phải gửi báo cáo kinh doanh bằng SQL Server Management Studio hoặc SQLCMD, điều này KHÔNG BAO GIỜ giải pháp chính xác, ngay cả khi nó có thể được thực hiện. Bất kỳ môi trường báo cáo hoặc giao diện người dùng nào đều có các chức năng thích hợp để xử lý định dạng hiển thị.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. chọn sự suy giảm hiệu suất trạng thái khi sử dụng DISTINCT với các tham số

  2. Cách chỉ định văn hóa bất biến khi sử dụng FORMAT () trong SQL Server

  3. Cách tạo dấu vết SQL để nắm bắt sự kiện máy chủ SQL

  4. Truy vấn SQL Server:hàng tạo cột (Xoay vòng?)

  5. Thoát tham số lệnh được chuyển tới xp_cmdshell đến dtexec