CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char(30) Declare @String4 Varchar(100) Declare @String3 Varchar(100) --从原A值中取出的值Declare @i int --循环变量Declare @J Int --A的值乘以100的字符串长度Declare @Ch1 Varchar(100) --数字的汉语读法Declare @Ch2 Varchar(100) --数字位的汉字读法Declare @Zero Int --用来计算连续有几个零Declare @ReturnValue VarChar(100) Select @ReturnValue = ''Select @String1 = '零壹贰叁肆伍陆柒捌玖'Select @String2 = '万仟佰拾亿仟佰拾万仟佰拾元角分'Select @String4 = Cast(@ChangeMoney*100 as int) select @J=len(cast((@ChangeMoney*100) as int)) Select @String2=Right(@String2,@J) Select @i = 1 while @i Select @String3 = Substring(@String4,@i,1) if @String3'0' Begin Select @Ch1 = Substring(@String1, Cast(@String3 as Int) 1, 1) Select @Ch2 = Substring(@String2, @i, 1) Select @Zero = 0 --表示本位不为零end else Begin If (@Zero = 0) Or (@i = @J - 9) Or (@i = @J - 5) Or (@i = @J - 1) Select @Ch1 = '零'Else Select @Ch1 = ''Select @Zero = @Zero 1 --表示本位为0--如果转换的数值需要扩大,那么需改动以下表达式 I 的值。
Select @Ch2 = ''If @i = @J - 10 Begin Select @Ch2 = '亿'Select @Zero = 0 end If @i = @J - 6 Begin
