码迷,mamicode.com
首页 > 数据库 > 详细

Sql Server 数字金额转中文金额 函数

时间:2019-08-19 13:12:23      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:订单   sql   serve   span   ring   returns   eric   har   set   

  在做一些订单金额、合同金额转换的时候,经常会遇到数字转成中文的情况,所以整理了一个数字转中文的函数;

/*
    说明:数字金额转中文金额
    示例:187.4 转成 壹佰捌拾柒圆肆角整
*/

CREATE FUNCTION [dbo].[CNumeric](@num numeric(14,2))
    returns nvarchar(100)
BEGIN
    Declare @n_data nvarchar(20),@c_data nvarchar(100),@n_str nvarchar(10),@i int
    Set @n_data=right(space(14)+cast(cast(abs(@num*100) as bigint) as nvarchar(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( N零壹贰叁肆伍陆柒捌玖,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( N仟佰拾亿仟佰拾万仟佰拾圆角分,@i,1)
        IF SUBSTRING(@c_data,LEN(@c_data)-1,2)= N亿万
        SET @c_data=SUBSTRING(@c_data,1,LEN(@c_data)-1)
        END
        SET @i=@i+1
    END
    IF @num <0
        SET @c_data= (负数)+@c_data
    IF @num=0
        SET @c_data= 零圆
    IF @n_str= 0
        SET @c_data=@c_data+ 
        
    RETURN(@c_data)
END

 

Sql Server 数字金额转中文金额 函数

标签:订单   sql   serve   span   ring   returns   eric   har   set   

原文地址:https://www.cnblogs.com/Rawls/p/11376159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!