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

来源:互联网 发布:唯品会和淘宝哪个靠谱 编辑:程序博客网 时间:2024/05/01 04:32
SET QUOTED_IDENTIFIER ONSET ANSI_NULLS ONGOCREATE FUNCTION BDCCLF.CNY_AmountOfUppercase(    @TotalPrice DECIMAL(18,3))RETURNS NVARCHAR(100)WITH ENCRYPTIONASBEGIN    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)ENDGO
0 0
原创粉丝点击