ALTER FUNCTION [dbo].[usf_ChineseCost] ( @Cost decimal(18,2) )
RETURNS varchar(200)
AS /*大写钱数*/
BEGINdeclare @returnStr varchar(50)
if (@Cost >= 1000000000)
Begin
set @returnStr = '##########'
return @returnStr
end
set @returnStr = '00000000000'
set @returnStr = right(@returnStr + convert(varchar,convert(decimal(11,2),round(@cost,2))),12)
set @returnStr = replace(@returnStr,'0','零')
set @returnStr = replace(@returnStr,'1','壹')
set @returnStr = replace(@returnStr,'2','贰')
set @returnStr = replace(@returnStr,'3','叁')
set @returnStr = replace(@returnStr,'4','肆')
set @returnStr = replace(@returnStr,'5','伍')
set @returnStr = replace(@returnStr,'6','陆')
set @returnStr = replace(@returnStr,'7','柒')
set @returnStr = replace(@returnStr,'8','捌')
set @returnStr = replace(@returnStr,'9','玖')
set @returnStr = @returnStr + '分'
set @returnStr = stuff(@returnStr,len(@returnStr)-1,0,'角')
set @returnStr = replace(@returnStr,'.','圆')
set @returnStr = stuff(@returnStr,len(@returnStr)-5,0,'拾')
set @returnStr = stuff(@returnStr,len(@returnStr)-7,0,'佰')
set @returnStr = stuff(@returnStr,len(@returnStr)-9,0,'仟')
set @returnStr = stuff(@returnStr,len(@returnStr)-11,0,'万')
set @returnStr = stuff(@returnStr,len(@returnStr)-13,0,'拾')
set @returnStr = stuff(@returnStr,len(@returnStr)-15,0,'佰')
set @returnStr = stuff(@returnStr,len(@returnStr)-17,0,'仟')
set @returnStr = stuff(@returnStr,len(@returnStr)-19,0,'亿')
set @returnStr = replace(@returnStr,'零亿','零')
set @returnStr = replace(@returnStr,'零仟','零')
set @returnStr = replace(@returnStr,'零佰','零')
set @returnStr = replace(@returnStr,'零拾','零')
set @returnStr = replace(@returnStr,'零零零','零')
set @returnStr = replace(@returnStr,'零零','零')
set @returnStr = replace(@returnStr,'零万','万')
set @returnStr = replace(@returnStr,'零圆','圆')
set @returnStr = replace(@returnStr,'零角','零')
set @returnStr = replace(@returnStr,'零分','')
while left(@returnStr,1) = '零'
Begin
set @returnStr = right(@returnStr,len(@returnStr)-1)
end
if ((left(@returnStr,1)='万'))
begin
set @returnStr = right(@returnStr,len(@returnStr)-1)
end
if ((left(@returnStr,1)='圆'))
begin
set @returnStr = right(@returnStr,len(@returnStr)-1)
end
while left(@returnStr,1) = '零'
Begin
set @returnStr = right(@returnStr,len(@returnStr)-1)
end
while right(@returnStr,1) = '零'
Begin
set @returnStr = left(@returnStr,len(@returnStr)-1)
end
set @returnStr = replace(@returnStr,'亿万','亿零')
set @returnStr = replace(@returnStr,'零圆','圆')
set @returnStr = replace(@returnStr,'零零零','零')
set @returnStr = replace(@returnStr,'零零','零')
if (@returnStr='')
begin
set @returnStr = '零圆'
end
if ((right(@returnStr,1)='圆'))
begin
set @returnStr = @returnStr + '整'
end
return @returnStr
END