zoukankan      html  css  js  c++  java
  • sql server数字小写人民币转换成大写人民币(两种方式)

             

      一

    create function UpperRMB(@num numeric(14,2))  

    1. returns @rmb table(  
    2.      亿  varchar(2)  
    3.     ,仟万 varchar(2)  
    4.     ,佰万 varchar(2)  
    5.     ,拾万 varchar(2)  
    6.     ,万      varchar(2)  
    7.     ,仟      varchar(2)  
    8.     ,佰      varchar(2)  
    9.     ,拾      varchar(2)  
    10.     ,元      varchar(2)  
    11.     ,角      varchar(2)  
    12.     ,分      varchar(2))  
    13. as  
    14. begin  
    15. insert into @rmb  
    16. select   
    17.     (case 亿1            
    18. when 0 then '零'            
    19. when 1 then '壹'            
    20. when 2 then '贰'            
    21. when 3 then '叁'            
    22. when 4 then '肆'            
    23. when 5 then '伍'            
    24. when 6 then '陆'            
    25. when 7 then '柒'            
    26. when 8 then '捌'            
    27. when 9 then '玖'  
    28. else '' end) as 亿,    
    29.     (case 仟万1            
    30. when 0 then '零'            
    31. when 1 then '壹'            
    32. when 2 then '贰'            
    33. when 3 then '叁'            
    34. when 4 then '肆'            
    35. when 5 then '伍'            
    36. when 6 then '陆'            
    37. when 7 then '柒'            
    38. when 8 then '捌'            
    39. when 9 then '玖'  
    40. else '' end) as 仟万,    
    41.     (case 佰万1            
    42. when 0 then '零'            
    43. when 1 then '壹'            
    44. when 2 then '贰'            
    45. when 3 then '叁'            
    46. when 4 then '肆'            
    47. when 5 then '伍'            
    48. when 6 then '陆'            
    49. when 7 then '柒'            
    50. when 8 then '捌'            
    51. when 9 then '玖'   
    52. else '' end) as 佰万,      
    53.     (case 拾万1            
    54. when 0 then '零'            
    55. when 1 then '壹'            
    56. when 2 then '贰'            
    57. when 3 then '叁'            
    58. when 4 then '肆'            
    59. when 5 then '伍'            
    60. when 6 then '陆'            
    61. when 7 then '柒'            
    62. when 8 then '捌'            
    63. when 9 then '玖'   
    64. else '' end) as 拾万,             
    65.     (case 万1            
    66. when 0 then '零'            
    67. when 1 then '壹'            
    68. when 2 then '贰'            
    69. when 3 then '叁'            
    70. when 4 then '肆'            
    71. when 5 then '伍'            
    72. when 6 then '陆'            
    73. when 7 then '柒'            
    74. when 8 then '捌'            
    75. when 9 then '玖'   
    76. else '' end) as 万,            
    77.     (case 仟1            
    78. when 0 then '零'            
    79. when 1 then '壹'            
    80. when 2 then '贰'            
    81. when 3 then '叁'            
    82. when 4 then '肆'            
    83. when 5 then '伍'            
    84. when 6 then '陆'            
    85. when 7 then '柒'            
    86. when 8 then '捌'            
    87. when 9 then '玖'   
    88. else '' end) as 仟,            
    89.     (case 佰1            
    90. when 0 then '零'            
    91. when 1 then '壹'            
    92. when 2 then '贰'            
    93. when 3 then '叁'            
    94. when 4 then '肆'            
    95. when 5 then '伍'            
    96. when 6 then '陆'            
    97. when 7 then '柒'            
    98. when 8 then '捌'            
    99. when 9 then '玖'   
    100. else '' end) as 佰,            
    101.     (case 拾1            
    102. when 0 then '零'            
    103. when 1 then '壹'            
    104. when 2 then '贰'            
    105. when 3 then '叁'            
    106. when 4 then '肆'            
    107. when 5 then '伍'            
    108. when 6 then '陆'            
    109. when 7 then '柒'            
    110. when 8 then '捌'            
    111. when 9 then '玖'   
    112. else '' end) as 拾,            
    113.     (case 元1            
    114. when 0 then '零'            
    115. when 1 then '壹'            
    116. when 2 then '贰'            
    117. when 3 then '叁'            
    118. when 4 then '肆'            
    119. when 5 then '伍'            
    120. when 6 then '陆'            
    121. when 7 then '柒'            
    122. when 8 then '捌'            
    123. when 9 then '玖'   
    124. else '' end) as 元,            
    125.     (case 角1            
    126. when 0 then '零'            
    127. when 1 then '壹'            
    128. when 2 then '贰'            
    129. when 3 then '叁'            
    130. when 4 then '肆'            
    131. when 5 then '伍'            
    132. when 6 then '陆'            
    133. when 7 then '柒'            
    134. when 8 then '捌'            
    135. when 9 then '玖'   
    136. else '' end) as 角,            
    137.     (case 分1            
    138. when 0 then '零'            
    139. when 1 then '壹'            
    140. when 2 then '贰'            
    141. when 3 then '叁'            
    142. when 4 then '肆'            
    143. when 5 then '伍'            
    144. when 6 then '陆'            
    145. when 7 then '柒'            
    146. when 8 then '捌'            
    147. when 9 then '玖'   
    148. else '' end) as 分      
    149. from (       
    150. select   
    151. case when len(ltrim(str(@num*100,14)))>=11   
    152. then convert(varchar(10),left(right(ltrim(str(@num*100,14)),11),1) ) else null end as 亿1,  
    153. case when len(ltrim(str(@num*100,14)))>=10   
    154. then convert(varchar(10),left(right(ltrim(str(@num*100,14)),10),1) ) else null end as 仟万1,  
    155. case when len(ltrim(str(@num*100,14)))>=9   
    156. then convert(varchar(10),left(right(ltrim(str(@num*100,14)),9),1) ) else null end as 佰万1,    
    157. case when len(ltrim(str(@num*100,14)))>=8   
    158. then convert(varchar(10),left(right(ltrim(str(@num*100,14)),8),1) ) else null end as 拾万1,       
    159. case when len(ltrim(str(@num*100,14)))>=7   
    160. then convert(varchar(10),left(right(ltrim(str(@num*100,14)),7),1) ) else null end as 万1,            
    161. case when len(ltrim(str(@num*100,14)))>=6   
    162. then convert(varchar(10),left(right(ltrim(str(@num*100,14)),6),1) ) else null end as 仟1,            
    163. case when len(ltrim(str(@num*100,14)))>=5   
    164. then convert(varchar(10),left(right(ltrim(str(@num*100,14)),5),1) ) else null end as 佰1,            
    165. case when len(ltrim(str(@num*100,14)))>=4   
    166. then convert(varchar(10),left(right(ltrim(str(@num*100,14)),4),1) ) else null end as 拾1,            
    167. case when len(ltrim(str(@num*100,14)))>=3   
    168. then convert(varchar(10),left(right(ltrim(str(@num*100,14)),3),1) ) else null end as 元1,            
    169. case when len(ltrim(str(@num*100,14)))>=2   
    170. then convert(varchar(10),left(right(ltrim(str(@num*100,14)),2),1) ) else null end as 角1,            
    171. case when len(ltrim(str(@num*100,14)))>=1   
    172. then convert(varchar(10),left(right(ltrim(str(@num*100,14)),1),1) ) else null end as 分1      
    173.  ) kk  
    174. return  
    175. end  
    176. /*  
    177. select * from upperrmb(123456789.12)  
    178. select 亿+'亿'+仟万+'仟'+佰万+'佰'+拾万+'拾'+万+'万'+仟+'仟'+佰+'佰'+拾+'拾'+元+'元'+角+'角'+分+'分' AS [人民币大写]   
    179. from upperrmb(123456789.12)  
    180. --其实单位也可以在函数内设定  
    181. */  

     
      1. CREATE function dbo.toUppercaseRMB ( @LowerMoney decimal(18,4))  
      2. returns varchar(200)   
      3. as      
      4. begin      
      5.    declare @lowerStr varchar(200)      
      6.    declare @UpperStr varchar(200)      
      7.    declare @UpperPart varchar(200)     --长度      
      8.    declare @i int       
      9.          
      10.    set @lowerStr=ltrim(rtrim(convert(decimal(18,2),round(@LowerMoney,2))))      
      11.    set @i=1      
      12.    set @UpperStr=''      
      13.          
      14.    while(@i<=len(@lowerStr))      
      15.    begin      
      16.         select @UpperPart=  
      17.         case substring(@lowerStr,len(@lowerStr)-@i+1,1)--取最后一位数  
      18.             when  '.' then '元'      
      19.             when  '0' then '零'      
      20.             when  '1' then '壹'      
      21.             when  '2' then '贰'      
      22.             when  '3' then '叁'      
      23.             when  '4' then '肆'      
      24.             when  '5' then '伍'      
      25.             when  '6' then '陆'      
      26.             when  '7' then '柒'      
      27.             when  '8' then '捌'      
      28.             when  '9' then '玖'      
      29.         end      
      30.         +      
      31.         case @i       
      32.             when 1 then  '分'      
      33.             when 2 then  '角'      
      34.             when 3 then  ''      
      35.             when 4 then  ''      
      36.             when 5 then  '拾'      
      37.             when 6 then  '佰'      
      38.             when 7 then  '仟'      
      39.             when 8 then  '万'      
      40.             when 9 then  '拾'      
      41.             when 10 then '佰'      
      42.             when 11 then '仟'      
      43.             when 12 then '亿'      
      44.             when 13 then '拾'      
      45.             when 14 then '佰'      
      46.             when 15 then '仟'      
      47.             when 16 then '万'      
      48.             else ''      
      49.         end      
      50.         set @UpperStr=@UpperPart+@UpperStr      
      51.         set @i=@i+1      
      52.     end       
      53.     set @UpperStr = REPLACE(@UpperStr,'零拾','零')       
      54.     set @UpperStr = REPLACE(@UpperStr,'零佰','零')       
      55.     set @UpperStr = REPLACE(@UpperStr,'零仟零佰零拾','零')       
      56.     set @UpperStr  = REPLACE(@UpperStr,'零仟','零')      
      57.     set @UpperStr = REPLACE(@UpperStr,'零零零','零')      
      58.     set @UpperStr = REPLACE(@UpperStr,'零零','零')      
      59.     set @UpperStr = REPLACE(@UpperStr,'零角零分','')      
      60.     set @UpperStr = REPLACE(@UpperStr,'零分','')      
      61.     set @UpperStr = REPLACE(@UpperStr,'零角','零')      
      62.     set @UpperStr = REPLACE(@UpperStr,'零亿零万零元','亿元')      
      63.     set @UpperStr = REPLACE(@UpperStr,'亿零万零元','亿元')      
      64.     set @UpperStr = REPLACE(@UpperStr,'零亿零万','亿')      
      65.     set @UpperStr = REPLACE(@UpperStr,'零万零元','万元')      
      66.     set @UpperStr = REPLACE(@UpperStr,'万零元','万元')      
      67.     set @UpperStr = REPLACE(@UpperStr,'零亿','亿')      
      68.     set @UpperStr = REPLACE(@UpperStr,'零万','万')      
      69.     set @UpperStr = REPLACE(@UpperStr,'零元','元')      
      70.     set @UpperStr = REPLACE(@UpperStr,'零零','零')      
      71.     if left(@UpperStr,1)='元'      
      72.         set @UpperStr = REPLACE(@UpperStr,'元','零元')      
      73.   
      74.   return @UpperStr+'整'      
      75. end      
      76.   
      77. --      SELECT DBO.TOUPPERCASERMB(123456.789)  
  • 相关阅读:
    Delphi实现在数据库中存取图像
    c#后台修改前台DOM的css属性示例代码
    jQuery编程中的一些核心方法简介
    jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
    jQuery实现淡入淡出二级下拉导航菜单的方法
    jQuery实现瀑布流布局详解(PC和移动端)
    jQuery实用技巧必备
    jQuery链式操作实例分析
    谈谈Jquery ajax中success和complete有哪些不同点
    jquery密码强度校验
  • 原文地址:https://www.cnblogs.com/ysjBoke/p/4835218.html
Copyright © 2011-2022 走看看