金额转换成大写的sql处理方法

1、创建函数


create function [dbo].[fn_getformatmoney] (@money numeric(14,2))
returns nvarchar(32) as
begin
declare @money_num nvarchar(20) --存储金额的字符形式 51itr.net
, @money_chn nvarchar(32) --存储金额的中文大写形式
, @n_chn nvarchar(1), @i int --临时变量 51itr.com
select @money_chn=case when @money>=0 then '' else '(负)' end
, @money=abs(@money)
, @money_num=stuff(str(@money, 15, 2), 13, 1, '') --加前置空格补齐到位(去掉小数点) 51itr
, @i=patindex('%[1-9]%', @money_num) --找到金额最高位
while @i>=1 and @i<=14
begin
set @n_chn=substring(@money_num, @i, 1)
if @n_chn<>'0' or (substring(@money_num,@i+1,1)<>'0' and @i not in(4, 8, 12, 14)) --转换阿拉伯数字为中文大写形式 51itr.net
set @money_chn=@money_chn+substring('零壹贰叁肆伍陆柒捌玖', @n_chn+1, 1)
if @n_chn<>'0' or @i in(4, 8, 12) --添加中文单位
set @money_chn=@money_chn+substring('仟佰拾亿仟佰拾万仟佰拾元角分',@i,1)
set @i=@i+1
end
set @money_chn=replace(@money_chn, '亿万', '亿') --当金额为x亿零万时去掉万
if @money=0 set @money_chn='零元整' --当金额为零时返回'零圆整'
if @n_chn='0' set @money_chn=@money_chn+'整' --当金额末尾为零分时以'整'结尾
return @money_chn --返回大写金额
end

2、调用函数:

select   dbo.fn_getformatmoney(123213.00)

3、运行结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/4dd6130da56744cab4bd3b40a2eceea8.png在这里插入图片描述

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值