存贮过程实现金额小写转换为大写

xiaoxiao2021-02-27  148

SET QUOTED_IDENTIFIER ON SET ANSI_NULLS ON GO CREATE FUNCTION BDCCLF.CNY_AmountOfUppercase ( @TotalPrice DECIMAL(18,3) ) RETURNS NVARCHAR(100) WITH ENCRYPTION AS BEGIN DECLARE @n_data VARCHAR(20) , @c_data VARCHAR(100) , @n_str VARCHAR(10) , @i INT SET @n_data = RIGHT(SPACE(14) + CAST(CAST(ABS(@TotalPrice * 100) AS BIGINT) AS VARCHAR(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('零壹贰叁肆伍陆柒捌玖', 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('仟佰拾亿仟佰拾万仟佰拾圆角分', @i, 1) IF SUBSTRING(@c_data, LEN(@c_data) - 1, 2) = '亿万' SET @c_data = SUBSTRING(@c_data, 1, LEN(@c_data) - 1) END SET @i = @i + 1 END IF @TotalPrice < 0 SET @c_data = '(负数)' + @c_data IF @TotalPrice = 0 SET @c_data = '零圆' IF @n_str = '0' SET @c_data = @c_data + '整' RETURN(@c_data) END GO
转载请注明原文地址: https://www.6miu.com/read-14966.html

最新回复(0)