标题 | SQL SERVER函数将人民币数字转换成大写形式 |
范文 | SQL SERVER函数将人民币数字转换成大写形式 CREATE FUNCTION [dbo].[f_num_chn] (@num numeric(14,5)) RETURNS varchar(100) WITH ENCRYPTION AS BEGIN DECLARE @n_data VARCHAR(20),@c_data VARCHAR(100),@n_str VARCHAR(10),@i int SET @n_data=RIGHT(SPACE(14)+CAST(CAST(ABS(@num*100) AS bigint) AS varchar(20)),14) SET @c_data='' SET @i=1 WHILE @i<=14 BEGIN SET @n_str=SUBSTRING(@n_data,@i,1) IF @n_str<>' ' BEGIN IF not ((SUBSTRING(@n_data,@i,2)='00') or ((@n_str='0') and ((@i=4) or (@i=8) or (@i=12) or (@i=14)))) SET @c_data=@c_data+SUBSTRING('零壹贰叁肆伍陆柒捌玖',CAST(@n_str AS int)+1,1) IF not ((@n_str='0') and (@i<>4) and (@i<>8) and (@i<>12)) SET @c_data=@c_data+SUBSTRING('仟佰拾亿仟佰拾万仟佰拾圆角分',@i,1) IF SUBSTRING(@c_data,LEN(@c_data)-1,2)='亿万' SET @c_data=SUBSTRING(@c_data,1,LEN(@c_data)-1) END SET @i=@i+1 END IF @num<0 SET @c_data='(负数)'+@c_data IF @num=0 SET @c_data='零圆' IF @n_str='0' SET @c_data=@c_data+'整' RETURN(@c_data) END 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 |
随便看 |
|
在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。