create function CapsChange(@Number float)
returns varchar(100)
begin
declare @DNumber decimal(18,2)
select @DNumber = convert(decimal(18,2),@Number)--把数字转换成只有两位小数点的数字
declare @x varchar(100) --返回的大写金额
declare @num int --循环计数器
declare @DNumberLen int
select @num = 0
select @x = ''
if left(@Dnumber,1) = '-'
select @DNumberLen = len(@DNumber) - 1
else
select @DNumberLen = len(@DNumber)
while @num < @DNumberLen
begin
if @num <> 2
begin
declare @y varchar(100) --用于存放当前数字
select @y = right(left(@DNumber,len(@DNumber) - @num ),1)
select @x = case when @num = 7 then '万' when @num = 11 then '亿' else '' end + @x
select @x = case when @num = 0 then '分' when @num = 1 then '角' when @num = 3 then '元' when @num in (4,8,12) then '拾' when @num in (5,9,13) then '佰' when @num in (6,10,14) then '仟' else '' end + @x
select @x = case when @y = 0 then '零' when @y = 1 then '壹' when @y = 2 then '贰' when @y = 3 then '叁' when @y = 4 then '肆' when @y = 5 then '伍' when @y = 6 then '陆' when @y = 7 then '柒' when @y = 8 then '捌' when @y = 9 then '玖' else '' end + @x
end
else
begin
select @num = @num + 1
continue
end
select @num = @num + 1
end
if left(@Dnumber,1) = '-'
select @x = '负'+@x
return @x
end
go