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

Làm tròn một giá trị trong cột varchar trong MS SQL Server 2012?

Chọn ví dụ để kiểm tra các giá trị được đề xuất:

select 
      case when ISNULL([Call Length], '') = '' 
      then '' 
      else 
 FORMAT(Cast ( CONVERT(numeric(16,4), CAST([Call Length] AS FLOAT)) as float),'########0.####')   
      end as    val123
    from Clinical.AAAJFJunk

Cập nhật báo cáo ..

Bao gồm việc xử lý giá trị rỗng (tức là để nguyên giá trị)

Bao gồm xử lý các giá trị khoa học với ký hiệu E trong các giá trị chuỗi nguồn. ví dụ. 6.6699999999999995E-2

Bao gồm loại bỏ số 0 ở phía sau bên phải của số

Chức năng Định dạng được sử dụng.

Hàm STR với một số float để lại các số không ở cuối, vì vậy tôi không sử dụng hàm đó.

Hàm Chuyển đổi với một số nổi thành một chuỗi xác định số chữ số thập phân của chính nó, vì vậy tôi cũng muốn tránh điều đó!

UPDATE Clinical.AAAJFJunk
SET [Call Length] =
      case when ISNULL([Call Length], '') = '' 
      then '' else 
            FORMAT(Cast ( CONVERT(numeric(16,4), CAST([Call Length] AS FLOAT)) as float),'########0.####')   end

Xin lưu ý rằng số 0 trong trình định dạng có một ý nghĩa cụ thể.

Vui lòng xem:

https://docs.microsoft .com / en-us / dotnet / standard / base-type / custom-numeric-format-string




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự khác biệt giữa Người dùng và Đăng nhập trong SQL Server

  2. Việc sử dụng toán tử &trong SQL SERVER là gì

  3. Bối rối về thứ tự xử lý truy vấn logic của Itzik Ben-Gan trong cuốn sách SQL Server 2005 và cuốn sách SQL Server 2008 của anh ấy

  4. Phân tích cú pháp OpenXML với nhiều phần tử cùng tên

  5. Chỉ nhận ngày tháng từ sql datetime mà không cần chuyển đổi thành varchar để tôi có thể sắp xếp nó trong excel