zoukankan      html  css  js  c++  java
  • 金额小写转大写


    CREATE PROCEDURE [dbo].[TranNumberToBigForDecrypt]
    (
        
    @n_LowerMoney numeric(15,2),
        
    @v_TransType int,
        
    @RET VARCHAR(200) output
    )
    --with ENCRYPTION
    AS
    /**********************************
    descript:解密exec sp_decrypt 'TranNumberToBig'
    */

    Declare @v_LowerStr VARCHAR(200-- 小写金额 
    Declare @v_UpperPart VARCHAR(200
    Declare @v_UpperStr VARCHAR(200-- 大写金额
    Declare @startstr varchar(30--点号前面的部分
    Declare @endstr varchar(30--点号后面部分
    Declare @i_I int,@idx int,@e_I int,@i int
    Declare @end_Upper varchar(100),@end_Part varchar(100)

    select @v_LowerStr = LTRIM(RTRIM(convert(varchar(30),@n_LowerMoney))) --变成字符串并删除数据左右空格

    --if(charindex('.',@v_LowerStr)>0)

    begin
        
    set @idx=charindex('.',@v_LowerStr)
        
    set @startstr=substring(@v_LowerStr,1,@idx-1)
        
    --print @v_LowerStr
        select @i_I = 1
        
    select @v_UpperStr = ''
        
        
    while ( @i_I <= len(@startstr))
        
    begin
            
    select @v_UpperPart = case substring(@startstr,len(@startstr- @i_I + 1,1)
            
    WHEN '.' THEN ''
            
    WHEN '0' THEN ''
            
    WHEN '1' THEN ''
            
    WHEN '2' THEN ''
            
    WHEN '3' THEN ''
            
    WHEN '4' THEN ''
            
    WHEN '5' THEN ''
            
    WHEN '6' THEN ''
            
    WHEN '7' THEN ''
            
    WHEN '8' THEN ''
            
    WHEN '9' THEN ''
            
    END
            
    + 
            
    case @i_I
            
    WHEN 1 THEN ''
            
    WHEN 2 THEN ''
            
    WHEN 3 THEN ''
            
    WHEN 4 THEN ''
            
    WHEN 5 THEN ''
            
    WHEN 6 THEN ''
            
    WHEN 7 THEN ''
            
    WHEN 8 THEN ''
            
    WHEN 9 THEN '亿'
            
    WHEN 10 THEN ''
            
    WHEN 11 THEN ''
            
    WHEN 12 THEN ''
            
    WHEN 13 THEN ''
            
    ELSE ''
                
    END
        
    select @v_UpperStr = @v_UpperPart + @v_UpperStr
        
    select @i_I = @i_I + 1
            
    end

        
    --if ( @v_TransType=0 )
        --begin
            --print @v_UpperStr
            select @v_UpperStr = REPLACE(@v_UpperStr,'零佰零拾','')
            
    select @v_UpperStr = REPLACE(@v_UpperStr,'零仟','')
                    
    select @v_UpperStr = REPLACE(@v_UpperStr,'零佰','')
            
    select @v_UpperStr = REPLACE(@v_UpperStr,'零拾','')
            
    select @v_UpperStr = REPLACE(@v_UpperStr,'拾零','')
            
    select @v_UpperStr = REPLACE(@v_UpperStr,'零零','')
        
    --end
            
            
    select @endstr=LTRIM(RTRIM(substring(@v_LowerStr,@idx,len(@v_LowerStr)-@idx+1)))
            
            
    select @e_I=1
            
    select @end_Part=''
            
    select @end_Upper=''
            
    while(@e_I<=len(@endstr))
            
    begin
                 
    select @end_Part=case substring(@endstr,@e_I,1)
                    
    WHEN '.' THEN ''
            
    WHEN '0' THEN ''
            
    WHEN '1' THEN ''
            
    WHEN '2' THEN ''
            
    WHEN '3' THEN ''
            
    WHEN '4' THEN ''
            
    WHEN '5' THEN ''
            
    WHEN '6' THEN ''
            
    WHEN '7' THEN ''
            
    WHEN '8' THEN ''
            
    WHEN '9' THEN ''
            
    END
                 
    select @end_Upper=@end_Upper+@end_Part
                 
    select @e_I=@e_I+1
            
    end
            
    set @i=len(@end_Upper)
            
    while(@i>0)
            
    begin
                
    if(right(@end_Upper,1)='' or right(@end_Upper,1)='')
             
    begin
             
    select @end_Upper=left(@end_Upper,@i-1)
             
    select @i=@i-1
             
    end
               
    else
            
    break
            
    end
       
    --select @Part=@v_UpperStr+@end_Upper
       
       
    select @ret=@v_UpperStr+@end_Upper
     
    end

    GO
    转载请注明出处[http://samlin.cnblogs.com/

    欢迎关注本人公众号:

    作者赞赏
  • 相关阅读:
    滚轮选择器效果 封装类
    我的第一个博客——Fragment遇到的问题
    LeetCode#11 Container With Most Water
    LeetCode#5 Longest Palindromic Substring
    LeetCode#3 Longest Substring Without Repeating Characters
    邮件协议
    六、应用层——文件传输协议FTP
    六、应用层——DNS
    平衡二叉树
    二叉树的性质
  • 原文地址:https://www.cnblogs.com/samlin/p/1074821.html
Copyright © 2011-2022 走看看