Sau một số nghiên cứu, tôi đã tìm thấy 2 câu trả lời có thể cho câu hỏi ban đầu của mình. Chúng được liệt kê dưới đây.
Tùy chọn 1: Câu trả lời từ Mitch Wheat là câu trả lời có thể xảy ra. Tuy nhiên, khi muốn định dạng một giá trị cột trong một SELECT, thì chúng ta sẽ phải tạo một hàm vô hướng do người dùng định nghĩa bằng cách sử dụng mã T-SQL của Mitch và gọi UDF này từ SQL của chúng ta.
-- =============================================
-- Description: Formats a number and truncates
-- the decimal part. You can pass
-- a number as a string or a numeric type.
-- =============================================
CREATE FUNCTION dbo.Utility_fn_FormatNumberAndTruncateDecimals
(
@unFormattedNumber VARCHAR(100)
)
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @val VARCHAR(100)
SET @val = convert(VARCHAR(50), cast(@unFormattedNumber AS MONEY), 1)
RETURN (SELECT left(@val, len(@val) - 3))
END
GO
--call this function using either of the SELECTS below
SELECT dbo.Utility_fn_FormatNumberAndTruncateDecimals('233444')
SELECT dbo.Utility_fn_FormatNumberAndTruncateDecimals(233444.345)
Phương án 2: Chúng ta có thể sử dụng một chức năng hệ thống sẵn có gọi là 'parsename' như trong mã T-SQL dưới đây, để định dạng và cắt số thập phân.
SELECT PARSENAME(CONVERT(VARCHAR, CAST('2334442221.345222' AS MONEY), 1),2)
Làm cách nào để đánh dấu 2 câu trả lời? Tôi đã thêm một câu trả lời chi tiết cộng với bài viết của Mitch cũng là một câu trả lời. – Sunil
Với SQL Server 2012+ Bạn có thể sử dụng hàm FORMAT(). Bạn sẽ sử dụng '#, ##' làm thông số thứ hai của mình. http://msdn.microsoft.com/en-us/library/hh213505.aspx – Volvox
Bản sao có thể có của [Làm cách nào để định dạng một số bằng dấu phẩy trong T-SQL?] (https://stackoverflow.com/questions/4377352/how-do-i-format-a-number-với-dấu phẩy-in-t-sql) –