sql server数字小写人民币转换成大写人民币(两种方式)
一
create function UpperRMB(@num numeric(14,2))
- returns @rmb table(
- 亿 varchar(2)
- ,仟万 varchar(2)
- ,佰万 varchar(2)
- ,拾万 varchar(2)
- ,万 varchar(2)
- ,仟 varchar(2)
- ,佰 varchar(2)
- ,拾 varchar(2)
- ,元 varchar(2)
- ,角 varchar(2)
- ,分 varchar(2))
- as
- begin
- insert into @rmb
- select
- (case 亿1
- 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 '玖'
- else '' end) as 亿,
- (case 仟万1
- 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 '玖'
- else '' end) as 仟万,
- (case 佰万1
- 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 '玖'
- else '' end) as 佰万,
- (case 拾万1
- 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 '玖'
- else '' end) as 拾万,
- (case 万1
- 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 '玖'
- else '' end) as 万,
- (case 仟1
- 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 '玖'
- else '' end) as 仟,
- (case 佰1
- 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 '玖'
- else '' end) as 佰,
- (case 拾1
- 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 '玖'
- else '' end) as 拾,
- (case 元1
- 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 '玖'
- else '' end) as 元,
- (case 角1
- 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 '玖'
- else '' end) as 角,
- (case 分1
- 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 '玖'
- else '' end) as 分
- from (
- select
- case when len(ltrim(str(@num*100,14)))>=11
- then convert(varchar(10),left(right(ltrim(str(@num*100,14)),11),1) ) else null end as 亿1,
- case when len(ltrim(str(@num*100,14)))>=10
- then convert(varchar(10),left(right(ltrim(str(@num*100,14)),10),1) ) else null end as 仟万1,
- case when len(ltrim(str(@num*100,14)))>=9
- then convert(varchar(10),left(right(ltrim(str(@num*100,14)),9),1) ) else null end as 佰万1,
- case when len(ltrim(str(@num*100,14)))>=8
- then convert(varchar(10),left(right(ltrim(str(@num*100,14)),8),1) ) else null end as 拾万1,
- case when len(ltrim(str(@num*100,14)))>=7
- then convert(varchar(10),left(right(ltrim(str(@num*100,14)),7),1) ) else null end as 万1,
- case when len(ltrim(str(@num*100,14)))>=6
- then convert(varchar(10),left(right(ltrim(str(@num*100,14)),6),1) ) else null end as 仟1,
- case when len(ltrim(str(@num*100,14)))>=5
- then convert(varchar(10),left(right(ltrim(str(@num*100,14)),5),1) ) else null end as 佰1,
- case when len(ltrim(str(@num*100,14)))>=4
- then convert(varchar(10),left(right(ltrim(str(@num*100,14)),4),1) ) else null end as 拾1,
- case when len(ltrim(str(@num*100,14)))>=3
- then convert(varchar(10),left(right(ltrim(str(@num*100,14)),3),1) ) else null end as 元1,
- case when len(ltrim(str(@num*100,14)))>=2
- then convert(varchar(10),left(right(ltrim(str(@num*100,14)),2),1) ) else null end as 角1,
- case when len(ltrim(str(@num*100,14)))>=1
- then convert(varchar(10),left(right(ltrim(str(@num*100,14)),1),1) ) else null end as 分1
- ) kk
- return
- end
- /*
- select * from upperrmb(123456789.12)
- select 亿+'亿'+仟万+'仟'+佰万+'佰'+拾万+'拾'+万+'万'+仟+'仟'+佰+'佰'+拾+'拾'+元+'元'+角+'角'+分+'分' AS [人民币大写]
- from upperrmb(123456789.12)
- --其实单位也可以在函数内设定
- */
- CREATE function dbo.toUppercaseRMB ( @LowerMoney decimal(18,4))
- returns varchar(200)
- as
- begin
- declare @lowerStr varchar(200)
- declare @UpperStr varchar(200)
- declare @UpperPart varchar(200) --长度
- declare @i int
- set @lowerStr=ltrim(rtrim(convert(decimal(18,2),round(@LowerMoney,2))))
- set @i=1
- set @UpperStr=''
- while(@i<=len(@lowerStr))
- begin
- select @UpperPart=
- case substring(@lowerStr,len(@lowerStr)-@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
- 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 '拾'
- when 14 then '佰'
- when 15 then '仟'
- when 16 then '万'
- else ''
- end
- set @UpperStr=@UpperPart+@UpperStr
- set @i=@i+1
- end
- set @UpperStr = REPLACE(@UpperStr,'零拾','零')
- set @UpperStr = REPLACE(@UpperStr,'零佰','零')
- set @UpperStr = REPLACE(@UpperStr,'零仟零佰零拾','零')
- set @UpperStr = REPLACE(@UpperStr,'零仟','零')
- set @UpperStr = REPLACE(@UpperStr,'零零零','零')
- set @UpperStr = REPLACE(@UpperStr,'零零','零')
- set @UpperStr = REPLACE(@UpperStr,'零角零分','')
- set @UpperStr = REPLACE(@UpperStr,'零分','')
- set @UpperStr = REPLACE(@UpperStr,'零角','零')
- set @UpperStr = REPLACE(@UpperStr,'零亿零万零元','亿元')
- set @UpperStr = REPLACE(@UpperStr,'亿零万零元','亿元')
- set @UpperStr = REPLACE(@UpperStr,'零亿零万','亿')
- set @UpperStr = REPLACE(@UpperStr,'零万零元','万元')
- set @UpperStr = REPLACE(@UpperStr,'万零元','万元')
- set @UpperStr = REPLACE(@UpperStr,'零亿','亿')
- set @UpperStr = REPLACE(@UpperStr,'零万','万')
- set @UpperStr = REPLACE(@UpperStr,'零元','元')
- set @UpperStr = REPLACE(@UpperStr,'零零','零')
- if left(@UpperStr,1)='元'
- set @UpperStr = REPLACE(@UpperStr,'元','零元')
- return @UpperStr+'整'
- end
- -- SELECT DBO.TOUPPERCASERMB(123456.789)
转载于:https://www.cnblogs.com/ysjBoke/p/4835218.html
sql server数字小写人民币转换成大写人民币(两种方式)相关推荐
- Spark中RDD转换成DataFrame的两种方式(分别用Java和scala实现)
一:准备数据源 在项目下新建一个student.txt文件,里面的内容为: [plain] view plain copy print? <code class=&q ...
- server2008 sql 账号只读权限_SQL Server 2008数据库创建用户只读权限的两种方式(转载)...
最优秀的解决方案: https://www.cnblogs.com/hao-1234-1234/p/12699185.html 其它相关文章: 一.命令行方式创建 新建查询窗口,然后输入以下命令然后执 ...
- 将小写人民币转换成大写
将小写人民币转换成大写 public class MoneyUtil { public static String toChinese(String str) { /** 大写数字 */ String ...
- 小写数字转大写_不得不说的Excel小技巧:设置单元格格式将小写金额转换成大写...
大家好,我是小秋,近期一段时间比较忙,没有在今日头条上更新原创文章了.希望朋友们多多见谅,下面与大家分享一个Excel实用小技巧:如何设置单元格格式将小写金额转换成大写? 1.应用场景 在报销单.收据 ...
- 使用 C# 将数字转换成大写人民币
贴段最近在项目中用到的一个函数. 因涉及到财务,需要把数字符转换成大写人民币汉字,于是自己动手写了一个,使用的算法比较笨,各位看客不要笑啊. 可转换数字大小在10亿以下,超过的,就无能为力了,不过大家 ...
- win7计算机名改成大写,图文解读win7系统excel数字小写金额转换成汉字大写金额的措施...
有很多网友在使用电脑的过程总难免会遇到win7系统excel数字小写金额转换成汉字大写金额的情况.针对win7系统excel数字小写金额转换成汉字大写金额的问题,我给大家整理总结了详细的解决步骤.近日 ...
- 转换成字符串_汇编语言--将字符串中小写字母转换成大写字母
将字符串中小写字母转换成大写字母 思路: 将键盘上输入的字符读入 调用DOS 10号功能 利用偏移量的性质(类似指针的移动),逐一将字符转换为大写 在转换完的字符串后面 加上 结束符 '$' 利用DO ...
- C语言试题八十二之输入小写字母,把小写字母转换成大写字母。
1.题目 输入小写字母,把小写字母转换成大写字母. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中C程序设计科目.帮助C语言学者打好程序基础.C语言基础,锻炼您的逻辑思 ...
- 信息学奥赛一本通 1138:将字符串中的小写字母转换成大写字母 | OpenJudge NOI 1.7 13
[题目链接] ybt 1138:将字符串中的小写字母转换成大写字母 OpenJudge NOI 1.7 13:将字符串中的小写字母转换成大写字母 [题目考点] 1. 字符串处理 2. ASCII码 [ ...
最新文章
- 《jQuery UI 开发指南》——1.3 什么是CSS主题
- windows下python3.5使用pip离线安装whl包
- Build boost 1.66.0 with c++11
- 单调递增最长子序列 - 从最长公共子序列到单调递增最长子序列
- 用D触发器构造边沿触发器
- 用python解决实际问题_Python解决实际问题一--备份文件
- 360安全卫士 导致MySQL 5.0.24 自动关闭
- 国际化组件 Unicode (ICU) 函数库
- 嘉立创又搞大事情了,与你我相关!
- [贪心算法] 例6.2 今年暑假不AC
- linux一次性密码确保ssh登录安全,使用 SSH 时确保 EC2 Linux 实例安全的最佳实践
- java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】...
- Linux第九周作业
- Aqua Data Studio 执行HiveSql的问题
- 如何制作个人网站(如何搭建个人博客)
- 官方下载weka,亲测可用!
- hackthebox - blunder (Bludit渗透cewl使用 sudo提权)
- swoole 协程与go 协程对比
- 新建一个html代码页面,三分钟教你创建一个简单的网页
- 理想国pandas练习题3
热门文章
- 虚拟机玩热血热血传奇怀旧版
- 消防设备电源监控系统在现代建筑物中的设计、安装及使用
- 有哪些事情是你学了计算机后才知道的?
- 【论文笔记_知识蒸馏_2022】Masked Generative Distillation
- ffmpeg 本地麦克风声音和系统声音混音后,再混合本地桌面成最终的mp4文件-修正
- 小厨餐饮加盟有什么优势
- Python实现两个图的交运算、并运算、差运算、对称差运算、联运算、积图、合成图
- java锁屏,【刷新JAVA锁屏软件 V1.11 (2007-04-02)】-Moto E6手机论坛-ZOL中关村在线
- 毕业论文答辩流程以及攻略
- 聚观早报|恒大公告许家印成被执行人;特斯拉回应召回超百万辆车