sql server 中 长数字隔三位用逗号","隔开怎么做?不要保留小数位,急!!!

解决方案 »

  1.   

    取出来之后格式化不行吗?首先转换成Decimal类型,然后.ToString("N0"),注意括号中的是"恩零",不是"恩偶"
      

  2.   

    CREATE FUNCTION fn_numsplit ( @col VARCHAR(50) )--创建函数
    RETURNS VARCHAR(50)
    AS 
        BEGIN
            DECLARE @r VARCHAR(50) ;
            SET @r = '' ;
            SET @col = REVERSE(@col) ;
            WHILE LEN(@col) > 3 
                BEGIN
                    SET @r = @r + LEFT(@col, 3) + ',' ;
                    SET @col = STUFF(@col, 1, 3, '') ;
                END
            RETURN REVERSE(@r+@col) ;
        ENDCREATE TABLE TB ( col VARCHAR(50) )--测试数据
    INSERT  INTO dbo.TB
            SELECT  '123456789.43543'
            UNION ALL
            SELECT  '987654321.98'
            UNION ALL
            SELECT  '6543676' ;
            
    SELECT  dbo.fn_numsplit(ISNULL(PARSENAME(col, 2), col)) FROM  dbo.TB ;--查询语句
    DROP TABLE dbo.TB ;
    DROP FUNCTION dbo.fn_numsplit ;
    /*
    --------------------------------------------------
    123,456,789
    987,654,321
    6,543,676(3 行受影响)
    */