Tôi phải đếm các chữ số sau dấu thập phân trong cơ sở dữ liệu được lưu trữ bởi máy chủ MS Sql (2005 hoặc 2008 không quan trọng), để sửa một số lỗi do người dùng tạo ra. Tôi có cùng một vấn đề trên một cơ sở dữ liệu Oracle, nhưng có những thứ ít phức tạp hơn. Điểm mấu chốt là trên Oracle, chọn là:Làm cách nào để lấy số chữ số sau dấu thập phân trong cột phao trong ms sql?
select length(substr(to_char(MY_FIELD), instr(to_char(MY_FILED),'.',1,1)+1, length(to_char(MY_FILED)))) as digits_length
from MY_TABLE
nơi tệp được gửi My_filed là phao (38).
trên MS SQL Server tôi cố gắng sử dụng:
select LEN(SUBSTRING(CAST(MY_FIELD AS VARCHAR), CHARINDEX('.',CAST(MY_FILED AS VARCHAR),1)+1, LEN(CAST(MY_FIELD AS VARCHAR)))) as digits_length
from MY_TABLE
Vấn đề là trên MS SQL Server, khi tôi đúc MY_FIELD như varchar số phao được cắt ngắn bởi chỉ có 2 số thập phân và số lượng của các chữ số là sai. Ai đó có thể cho tôi bất kỳ gợi ý nào không?
Trân trọng.
Chỉ cần lưu ý rằng đối với toàn bộ số, nó trả về 1 thay vì 0 được mong đợi. – user824276