alter function [dbo].[numtochn] (@num numeric(19,6)) returns nvarchar(100) as begin declare @n_data nvarchar(20),@c_data nvarchar(100),@n_str nvarchar(10),@i int set @n_data=right(space(14)+cast(cast(abs(@num*100) as bigint) as nvarchar(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( n'零壹贰叁肆伍陆柒捌玖',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( n'仟佰拾亿仟佰拾万仟佰拾圆角分',@i,1) if substring(@c_data,len(@c_data)-1,2)= n'亿万' 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 20210311