sql server 金额大小写

ALTER FUNCTION [dbo].[usf_ChineseCost] ( @Cost decimal(18,2) ) 

RETURNS varchar(200) 

AS /*大写钱数*/

BEGIN

  declare @returnStr varchar(50) 

  if (@Cost >= 1000000000) 

    Begin

  set @returnStr = '##########'

        return @returnStr 

    end 

  set @returnStr = '00000000000'

  set @returnStr = right(@returnStr + convert(varchar,convert(decimal(11,2),round(@cost,2))),12) 

  set @returnStr = replace(@returnStr,'0','零') 

 set @returnStr = replace(@returnStr,'1','壹') 

  set @returnStr = replace(@returnStr,'2','贰') 

 set @returnStr = replace(@returnStr,'3','叁') 

  set @returnStr = replace(@returnStr,'4','肆') 

  set @returnStr = replace(@returnStr,'5','伍') 

 set @returnStr = replace(@returnStr,'6','陆') 

  set @returnStr = replace(@returnStr,'7','柒') 

 set @returnStr = replace(@returnStr,'8','捌') 

 set @returnStr = replace(@returnStr,'9','玖') 

            

set @returnStr = @returnStr + '分'

 set @returnStr =  stuff(@returnStr,len(@returnStr)-1,0,'角') 

  set @returnStr =  replace(@returnStr,'.','圆') 

  set @returnStr =  stuff(@returnStr,len(@returnStr)-5,0,'拾') 

 set @returnStr =  stuff(@returnStr,len(@returnStr)-7,0,'佰') 

 set @returnStr =  stuff(@returnStr,len(@returnStr)-9,0,'仟') 

  set @returnStr =  stuff(@returnStr,len(@returnStr)-11,0,'万') 

 set @returnStr =  stuff(@returnStr,len(@returnStr)-13,0,'拾') 

 set @returnStr =  stuff(@returnStr,len(@returnStr)-15,0,'佰') 

 set @returnStr =  stuff(@returnStr,len(@returnStr)-17,0,'仟') 

 set @returnStr =  stuff(@returnStr,len(@returnStr)-19,0,'亿') 

 

  set @returnStr =  replace(@returnStr,'零亿','零') 

  set @returnStr =  replace(@returnStr,'零仟','零') 

 set @returnStr =  replace(@returnStr,'零佰','零') 

 set @returnStr =  replace(@returnStr,'零拾','零') 

  set @returnStr =  replace(@returnStr,'零零零','零') 

  set @returnStr =  replace(@returnStr,'零零','零') 

  set @returnStr =  replace(@returnStr,'零万','万') 

  set @returnStr =  replace(@returnStr,'零圆','圆') 

  set @returnStr =  replace(@returnStr,'零角','零') 

 set @returnStr =  replace(@returnStr,'零分','') 

   

 while left(@returnStr,1) = '零'

    Begin

    set @returnStr =  right(@returnStr,len(@returnStr)-1) 

   end

 if ((left(@returnStr,1)='万'))  

  begin

   set @returnStr =  right(@returnStr,len(@returnStr)-1) 

 end

  if ((left(@returnStr,1)='圆'))  

  begin

   set @returnStr =  right(@returnStr,len(@returnStr)-1) 

 end

 while left(@returnStr,1) = '零'

     Begin

     set @returnStr =  right(@returnStr,len(@returnStr)-1) 

    end

  while right(@returnStr,1) = '零'

    Begin

     set @returnStr =  left(@returnStr,len(@returnStr)-1) 

   end

 

 set @returnStr =  replace(@returnStr,'亿万','亿零') 

  set @returnStr =  replace(@returnStr,'零圆','圆') 

 set @returnStr =  replace(@returnStr,'零零零','零') 

 set @returnStr =  replace(@returnStr,'零零','零') 

   

 if (@returnStr='')  

  begin

  set @returnStr =  '零圆'

 end

  if ((right(@returnStr,1)='圆'))  

  begin

  set @returnStr =  @returnStr + '整'

 end

 return @returnStr 

 END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值