• 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
  • 相关阅读:
    Swift中的设计模式
    ios应用view之间数据传递的方式
    关于iOS多线程,你看我就够了
    iOS开发-21UINavigationController导航控制器初始化 导航控制器栈的push和pop跳转理解
    iOS蓝牙4.0开发例子
    工作记录8:iOS 传值问题总结(7种传值完美介绍)
    iOS 各种传值方式
    iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)
    Swift类与结构、存储属性、计算属性、函数与方法、附属脚本等
    源码推荐(7.17):不规则按钮类似于遥控器按钮,一个可以最大程度简化PageView与TabView切换的第三方框架
  • 原文地址:https://www.cnblogs.com/chinabc/p/1593237.html
Copyright © 2020-2023  润新知