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. set @lowerStr=ltrim(rtrim(convert(decimal(18,2),round(@LowerMoney,2))))
  10. set @i=1
  11. set @UpperStr=''
  12. while(@i<=len(@lowerStr))
  13. begin
  14. select @UpperPart=
  15. case substring(@lowerStr,len(@lowerStr)-@i+1,1)--取最后一位数
  16. when  '.' then '元'
  17. when  '0' then '零'
  18. when  '1' then '壹'
  19. when  '2' then '贰'
  20. when  '3' then '叁'
  21. when  '4' then '肆'
  22. when  '5' then '伍'
  23. when  '6' then '陆'
  24. when  '7' then '柒'
  25. when  '8' then '捌'
  26. when  '9' then '玖'
  27. end
  28. +
  29. case @i
  30. when 1 then  '分'
  31. when 2 then  '角'
  32. when 3 then  ''
  33. when 4 then  ''
  34. when 5 then  '拾'
  35. when 6 then  '佰'
  36. when 7 then  '仟'
  37. when 8 then  '万'
  38. when 9 then  '拾'
  39. when 10 then '佰'
  40. when 11 then '仟'
  41. when 12 then '亿'
  42. when 13 then '拾'
  43. when 14 then '佰'
  44. when 15 then '仟'
  45. when 16 then '万'
  46. else ''
  47. end
  48. set @UpperStr=@UpperPart+@UpperStr
  49. set @i=@i+1
  50. end
  51. set @UpperStr = REPLACE(@UpperStr,'零拾','零')
  52. set @UpperStr = REPLACE(@UpperStr,'零佰','零')
  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. if left(@UpperStr,1)='元'
  70. set @UpperStr = REPLACE(@UpperStr,'元','零元')
  71. return @UpperStr+'整'
  72. end
  73. --      SELECT DBO.TOUPPERCASERMB(123456.789)

转载于:https://www.cnblogs.com/ysjBoke/p/4835218.html

sql server数字小写人民币转换成大写人民币(两种方式)相关推荐

  1. Spark中RDD转换成DataFrame的两种方式(分别用Java和scala实现)

    一:准备数据源       在项目下新建一个student.txt文件,里面的内容为:         [plain] view plain copy print? <code class=&q ...

  2. server2008 sql 账号只读权限_SQL Server 2008数据库创建用户只读权限的两种方式(转载)...

    最优秀的解决方案: https://www.cnblogs.com/hao-1234-1234/p/12699185.html 其它相关文章: 一.命令行方式创建 新建查询窗口,然后输入以下命令然后执 ...

  3. 将小写人民币转换成大写

    将小写人民币转换成大写 public class MoneyUtil { public static String toChinese(String str) { /** 大写数字 */ String ...

  4. 小写数字转大写_不得不说的Excel小技巧:设置单元格格式将小写金额转换成大写...

    大家好,我是小秋,近期一段时间比较忙,没有在今日头条上更新原创文章了.希望朋友们多多见谅,下面与大家分享一个Excel实用小技巧:如何设置单元格格式将小写金额转换成大写? 1.应用场景 在报销单.收据 ...

  5. 使用 C# 将数字转换成大写人民币

    贴段最近在项目中用到的一个函数. 因涉及到财务,需要把数字符转换成大写人民币汉字,于是自己动手写了一个,使用的算法比较笨,各位看客不要笑啊. 可转换数字大小在10亿以下,超过的,就无能为力了,不过大家 ...

  6. win7计算机名改成大写,图文解读win7系统excel数字小写金额转换成汉字大写金额的措施...

    有很多网友在使用电脑的过程总难免会遇到win7系统excel数字小写金额转换成汉字大写金额的情况.针对win7系统excel数字小写金额转换成汉字大写金额的问题,我给大家整理总结了详细的解决步骤.近日 ...

  7. 转换成字符串_汇编语言--将字符串中小写字母转换成大写字母

    将字符串中小写字母转换成大写字母 思路: 将键盘上输入的字符读入 调用DOS 10号功能 利用偏移量的性质(类似指针的移动),逐一将字符转换为大写 在转换完的字符串后面 加上 结束符 '$' 利用DO ...

  8. C语言试题八十二之输入小写字母,把小写字母转换成大写字母。

    1.题目 输入小写字母,把小写字母转换成大写字母. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中C程序设计科目.帮助C语言学者打好程序基础.C语言基础,锻炼您的逻辑思 ...

  9. 信息学奥赛一本通 1138:将字符串中的小写字母转换成大写字母 | OpenJudge NOI 1.7 13

    [题目链接] ybt 1138:将字符串中的小写字母转换成大写字母 OpenJudge NOI 1.7 13:将字符串中的小写字母转换成大写字母 [题目考点] 1. 字符串处理 2. ASCII码 [ ...

最新文章

  1. 《jQuery UI 开发指南》——1.3 什么是CSS主题
  2. windows下python3.5使用pip离线安装whl包
  3. Build boost 1.66.0 with c++11
  4. 单调递增最长子序列 - 从最长公共子序列到单调递增最长子序列
  5. 用D触发器构造边沿触发器
  6. 用python解决实际问题_Python解决实际问题一--备份文件
  7. 360安全卫士 导致MySQL 5.0.24 自动关闭
  8. 国际化组件 Unicode (ICU) 函数库
  9. 嘉立创又搞大事情了,与你我相关!
  10. [贪心算法] 例6.2 今年暑假不AC
  11. linux一次性密码确保ssh登录安全,使用 SSH 时确保 EC2 Linux 实例安全的最佳实践
  12. java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】...
  13. Linux第九周作业
  14. Aqua Data Studio 执行HiveSql的问题
  15. 如何制作个人网站(如何搭建个人博客)
  16. 官方下载weka,亲测可用!
  17. hackthebox - blunder (Bludit渗透cewl使用 sudo提权)
  18. swoole 协程与go 协程对比
  19. 新建一个html代码页面,三分钟教你创建一个简单的网页
  20. 理想国pandas练习题3

热门文章

  1. 虚拟机玩热血热血传奇怀旧版
  2. 消防设备电源监控系统在现代建筑物中的设计、安装及使用
  3. 有哪些事情是你学了计算机后才知道的?
  4. 【论文笔记_知识蒸馏_2022】Masked Generative Distillation
  5. ffmpeg 本地麦克风声音和系统声音混音后,再混合本地桌面成最终的mp4文件-修正
  6. 小厨餐饮加盟有什么优势
  7. Python实现两个图的交运算、并运算、差运算、对称差运算、联运算、积图、合成图
  8. java锁屏,【刷新JAVA锁屏软件 V1.11 (2007-04-02)】-Moto E6手机论坛-ZOL中关村在线
  9. 毕业论文答辩流程以及攻略
  10. 聚观早报|恒大公告许家印成被执行人;特斯拉回应召回超百万辆车