• SQL货币数字转英文字符


    Alter Function UDF_Util_ConvertCurrencyToEnglish      
    (        
    @Money Numeric(15,2),        
    @Unit varchar(10)='BAHT'        
    )  
    Returns Varchar(400)      
    As 
    /*    
    /// <summary>    
    /// Convert money to english
    /// </summary>    
    /// <param name="@Money">e.g. 1234.56  </param>  
    /// <param name="@Unit">e.g. 'BAHT'  </param>      
    /// <returns>english money</returns>    
    */            
    Begin     
    DECLARE @result Varchar(400)       
    IF @Money=0    
      
    Set @result= 'ZERO '+@Unit    
    Else    
     
    Begin    
       
    Declare @i Int@hundreds Int@tenth Int@one Int,  @thousand Int,@million Int,@billion Int,@numbers Varchar(400),@s Varchar(15)         
       
    Set @numbers='ONE       TWO       THREE     FOUR      FIVE      '        
          
    +'SIX       SEVEN     EIGHT     NINE      TEN       '        
          
    +'ELEVEN    TWELEVE    THIRTEEN  FOURTEEN  FIFTEEN   '        
          
    +'SIXTEEN   SEVENTEEN EIGHTEEN  NINETEEN  '        
          
    +'TWENTY    THIRTY    FORTY     FIFTY     '        
          
    +'SIXTY     SEVENTY   EIGHTY    NINETY    '        
             
       
    Set @s=RIGHT('000000000000000'+Cast(@Money As varchar(15)),15)        
       
    Set @billion=Cast(Substring(@s,1,3As Int)        
       
    Set @million=Cast(Substring(@s,4,3As Int)        
       
    Set @thousand=Cast(Substring(@s,7,3As Int)        
       
    Set @result=''        
       
    Set @i=0        
             
       
    While @i<=3        
       
    BEGIN        
             
          
    Set @hundreds=Cast(Substring(@s,@i*3+1,1As Int)        
          
    Set @tenth=Cast(Substring(@s,@i*3+2,1As Int)        
          
    Set @one=(Case @tenth When 1 Then 10 Else 0 End)+Cast(Substring(@s,@i*3+3,1As Int)        
          
    Set @tenth=(Case When @tenth<=1 Then 0 Else @tenth End)        
             
          
    IF (@i=3 and (@billion>0 or @million>0 or @thousand>0and (@hundreds=0 and (@tenth>0 or @one>0)))        
            
    Set @result=@result+' AND '        
             
          
    IF @hundreds>0        
            
    Set @result=@result+RTRIM(Substring(@numbers,@hundreds*10-9,10))+' HUNDRED '        
             
          
    IF @tenth>=2 and @tenth<=9        
          
    BEGIN        
            
    IF @hundreds>0        
                
    Set @result=@result+' AND '        
            
    Set @result=@result+RTRIM(Substring(@numbers,@tenth*10+171,10))+' '  
          
    END        
             
          
    IF @one>=1 and @one<=19        
          
    BEGIN        
              
    IF @hundreds>0 AND @tenth=0        
                
    Set @result=@result+' AND '        
              
    Set @result=@result+RTRIM(Substring(@numbers,@one*10-9,10))        
          
    END        
             
          
    IF @i=0 and @billion>0        
            
    Set @result=@result+' BILLION '        
          
    IF @i=1 and @million>0        
            
    Set @result=@result+' MILLION '        
          
    IF @i=2 and @thousand>0        
            
    Set @result=@result+' THOUSAND '        
          
    Set @i=@i+1        
    END        
             
      
    IF(@result<>'')        
       
    Set @result=@result+' '+@Unit        
             
       
    IF Substring(@s,14,2)<>'00'        
        
    Begin        
          
    Set @tenth=CAST(Substring(@s,14,1AS INT)        
          
    Set @one=CAST(Substring(@s,15,1AS INT)        
             
          
    IF(@tenth>=2 and @tenth<=9)        
           
    Set @result=@result+RTRIM(Substring(@numbers,@tenth*10+171,10))        
          
    IF @tenth=1 AND @one>=1 and @one<=19        
           
    Set @result=@result+' '+RTRIM(Substring(@numbers,CAST(Substring(@s,14,2AS INT)*10-9,10))        
          
    ELSE        
           
    Set @result=@result+' '+RTRIM(Substring(@numbers,@one*10-9,10))        
             
           
    SET @result=@result+' SATANG '        
        
    END        
      
    ELSE        
        
    Set @result=@result+' ONLY'        
             
    END    
    RETURN @result        
    END
  • 相关阅读:
    JavaEE——Struts(1)--Filter作为MVC的控制器 配置Struts2环境
    折叠菜单--实现左边目录,右边显示
    转载--竖向折叠菜单
    pest错误笔记
    JavaWeb--JQuery中的$(function())
    codeforces 440C. One-Based Arithmetic 解题报告
    codeforces 399B. Red and Blue Balls 解题报告
    codeforces 445B. DZY Loves Chemistry 解题报告
    2013级新生程序设计基础竞赛-正式赛 F 异或最大值 解题报告
    codeforces 441C. Valera and Tubes 解题报告
  • 原文地址:https://www.cnblogs.com/chinabc/p/1593237.html
Copyright © 2020-2023  润新知