用SQL SERVER函数将人民币数字转换成大写形式
来源:互联网 发布:ansys15.0软件培训 编辑:程序博客网 时间:2024/05/15 02:36
SQL SERVER函数将人民币数字转换成大写形式
闲着也是闲着,欢迎大家多提宝贵意见
--阿拉伯数字转中文大写数字
Create function NToCC(@n int)
returns varchar(2)
as
begin
declare @s varchar(2)
if @n=0
set @s='零'
if @n=1
set @s='壹'
if @n=2
set @s='贰'
if @n=3
set @s='叁'
if @n=4
set @s='肆'
if @n=5
set @s='伍'
if @n=6
set @s='陆'
if @n=7
set @s='柒'
if @n=8
set @s='捌'
if @n=9
set @s='玖'
return @s
end
---
--可支持到上亿
Create function numbertoChineseBigString(@m money)
returns varchar(255)
begin
declare @i varchar(255)
declare @f varchar(255)
declare @r varchar(255)
declare @s varchar(255)
set @s=convert(varchar(255),@m)
if charindex('.',@s)>0
begin
set @i=substring(@s,1,charindex('.',@s)-1)
set @f=substring(@s,charindex('.',@s)+1,len(@s))
end
else
set @i=@s
set @r=''
declare @k int
set @k=len(@i)
while @k>=1
begin
--最多9位
if @k=9
set @r=@r+
dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))
--@i
+'亿'
if @k=8
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'千'
if @k=7
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'佰'
if @k=6
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'拾'
if @k=5
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'万'
if @k=4
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'千'
if @k=3
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'佰'
if @k=2
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'拾'
if @k=1
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'元'
set @k=@k-1
end
if convert(float,@f)=0
set @r=@r+'整'
else
begin
if substring(@s,1,1)>''
set @r=@r+dbo.NToCC(convert(int,substring(@f,1,1)))+'角'
if substring(@s,2,1)>''
set @r=@r+dbo.NToCC(convert(int,substring(@f,2,1)))+'分'
end
set @r=replace(@r,'零千零佰零拾','零')
set @r=replace(@r,'零佰零拾','零')
set @r=replace(@r,'零千零佰','零')
set @r=replace(@r,'零拾','零')
set @r=replace(@r,'零千','零')
set @r=replace(@r,'零佰','零')
set @r=replace(@r,'拾零万','拾万')
return @r
end
-- select dbo.numbertoChineseBigString(100102)
闲着也是闲着,欢迎大家多提宝贵意见
--阿拉伯数字转中文大写数字
Create function NToCC(@n int)
returns varchar(2)
as
begin
declare @s varchar(2)
if @n=0
set @s='零'
if @n=1
set @s='壹'
if @n=2
set @s='贰'
if @n=3
set @s='叁'
if @n=4
set @s='肆'
if @n=5
set @s='伍'
if @n=6
set @s='陆'
if @n=7
set @s='柒'
if @n=8
set @s='捌'
if @n=9
set @s='玖'
return @s
end
---
--可支持到上亿
Create function numbertoChineseBigString(@m money)
returns varchar(255)
begin
declare @i varchar(255)
declare @f varchar(255)
declare @r varchar(255)
declare @s varchar(255)
set @s=convert(varchar(255),@m)
if charindex('.',@s)>0
begin
set @i=substring(@s,1,charindex('.',@s)-1)
set @f=substring(@s,charindex('.',@s)+1,len(@s))
end
else
set @i=@s
set @r=''
declare @k int
set @k=len(@i)
while @k>=1
begin
--最多9位
if @k=9
set @r=@r+
dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))
--@i
+'亿'
if @k=8
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'千'
if @k=7
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'佰'
if @k=6
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'拾'
if @k=5
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'万'
if @k=4
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'千'
if @k=3
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'佰'
if @k=2
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'拾'
if @k=1
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'元'
set @k=@k-1
end
if convert(float,@f)=0
set @r=@r+'整'
else
begin
if substring(@s,1,1)>''
set @r=@r+dbo.NToCC(convert(int,substring(@f,1,1)))+'角'
if substring(@s,2,1)>''
set @r=@r+dbo.NToCC(convert(int,substring(@f,2,1)))+'分'
end
set @r=replace(@r,'零千零佰零拾','零')
set @r=replace(@r,'零佰零拾','零')
set @r=replace(@r,'零千零佰','零')
set @r=replace(@r,'零拾','零')
set @r=replace(@r,'零千','零')
set @r=replace(@r,'零佰','零')
set @r=replace(@r,'拾零万','拾万')
return @r
end
-- select dbo.numbertoChineseBigString(100102)
- -------------------------SQL SERVER函数将人民币数字转换成大写形式---------------------
- SQL SERVER函数将人民币数字转换成大写形式
- 用SQL SERVER函数将人民币数字转换成大写形式
- 将人民币数字转换成大写形式
- 将人民币数字转换成大写形式
- 将人民币从数字转换成大写形式
- Javascript:将人民币数字转换成大写形式
- 将数字金额转换成大写人民币形式
- JS人民币数字转换成大写形式
- 将一串数字转为大写人民币形式
- 将人民币数字转换为中文大写
- 将数字字符串转换为人民币大写
- .net 将数字转换为人民币大写
- 将一个小于10亿的String类型数字转换为人民币大写形式
- 数字转换大写人民币
- 人民币数字大写转换
- 将数字转换成中文金额的大写形式
- 把人民币数字转换成中文大写
- 童话
- DELHI实现十进制和二进制互转
- Tudoku
- Sql server实现十六进制和十进制的转换
- Android
- 用SQL SERVER函数将人民币数字转换成大写形式
- 通用工作列表的设计
- 首次正确测试JWebPro的一点感受
- 做一个IT人
- fopen:文本和二进制方式打开 ZZ
- 安装程序无法复制文件的解决办法
- 对自己的评估。
- SDL入门教程(五):1、构建SDL screen surface类
- SDL入门教程(五):2、构建SDL surface类