Database/MS-SQL | Posted by 아키텍처 2012. 4. 24. 18:05

해당숫자에 천단위 콤마표시 Make_CommaNum

 
 

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

-- 1000단위 ',' 표시 (해당 숫자를 bigint로 넘기기)
-- select dbo.Make_CommaNum(12345678902134)
Create  Function [dbo].[Make_CommaNum](@Num bigint)
 Returns varchar(50) -- 출력형태
As
 Begin
  Declare @str varchar(50)
  Declare @str_bak varchar(50)
  Declare @ReturnValue varchar(50)

  set @str = Convert(Varchar,@Num) --<-- 해당 Int를 String으로 입력
  set @str_bak = ''

  If len(@str) > 3 begin
   while len(@str) > 0 begin
    set @str_bak = ',' + right(@str, 3)+@str_bak
    set @str = SubString(@str,1,len(@str)- (case when len(@str)>3 then 3 else len(@str) end) )
   end 
   set @ReturnValue = SubString(@str_bak, 2, len(@str_bak)-1)
  end
  Else begin
   Select @ReturnValue = @str
  end

 Return(@ReturnValue)
 End

Posted by 김준홍 (http://www.Juuun.com)