Format a number with commas but without decimals in SQL Server 2008 R2?

后端 未结 5 990
情歌与酒
情歌与酒 2020-12-10 16:06

I am using the following to create a comma formatted number in T-SQL. How can I get rid of the decimal point and the digits after decimal. So if I get 1,112.00 after formatt

5条回答
  •  情书的邮戳
    2020-12-10 16:24

    After some research, I found 2 possible answers to my initial question. They are listed below.

    Option 1: The answer from Mitch Wheat is a possible answer. However, when one wants to format a column value within a SELECT, then we would have to create a user-defined scalar function using Mitch's T-SQL code, and call this UDF from our SQL.

    -- =============================================
    -- 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)
    

    Option 2: We can use an inbuilt system function called 'parsename' as in T-SQL code below, to format and truncate decimals.

    SELECT PARSENAME(CONVERT(VARCHAR, CAST('2334442221.345222'  AS MONEY), 1),2)
    

提交回复
热议问题