--功能: 用於將小寫的數值翻譯成大寫的字符串(支持到分,即小數點后兩位) --入口參數:@decNum------數字型變量 --返回:字符串 --舉例:select dbo.fn_ChnMoney(623.88) -- 結果為“陸佰貳拾叄元捌角捌分” CREATE FUNCTION fn_ChnMoney(@decNum decimal(18,2)) RETURNS varchar(200) AS BEGIN DECLARE @chvNum varchar(200) DECLARE @chvMoney varchar(200) DECLARE @chvTemp varchar(200) DECLARE @intIntLen int DECLARE @intI int DECLARE @chvTempI varchar(200) DECLARE @chvReturn varchar(200) IF @decNum=0 SET @chvMoney = '零' Else BEGIN SET @chvTemp=convert(varchar(200),Round(@decNum*100,0)) IF charindex('.',@chvTemp,1)>0 SET @chvNum=left(@chvTemp,charindex('.',@chvTemp,1)-1) ELSE SET @chvNum=@chvTemp SET @intIntLen=len(@chvNum) SET @chvMoney='' Set @chvReturn = '' SET @intI=1 WHILE @intI <= @intIntLen BEGIN SET @chvTempI = substring(@chvNum,@intIntLen-@intI+1,1) SET @chvMoney = substring('零壹貳叄肆伍陸柒捌玖',convert(int,@chvTempI)+1,1) + substring('分角元拾佰仟萬拾佰仟億拾佰仟兆拾佰仟京拾佰仟',(@intI-1)+1,1) SET @intI = @intI + 1 SET @chvReturn = @chvMoney + @chvReturn END END SET @chvReturn=Replace(@chvReturn,'零仟','零') SET @chvReturn=Replace(@chvReturn,'零佰','零') SET @chvReturn=Replace(@chvReturn,'零拾','零') while charindex('零零',@chvReturn,1)>0 SET @chvReturn=Replace(@chvReturn,'零零','零') SET @chvReturn=Replace(@chvReturn,'零兆','兆') SET @chvReturn=Replace(@chvReturn,'零億','億') SET @chvReturn=Replace(@chvReturn,'零萬','萬') SET @chvReturn=Replace(@chvReturn,'零元','元') SET @chvReturn=Replace(@chvReturn,'零角零分','整') SET @chvReturn=Replace(@chvReturn,'零角','零') SET @chvReturn=Replace(@chvReturn,'零分','整') SET @chvReturn=LTRIM(RTRIM(@chvReturn)) RETURN @chvReturn END