• 爱情文章
  • 亲情文章
  • 友情文章
  • 生活随笔
  • 校园文章
  • 经典文章
  • 人生哲理
  • 励志文章
  • 搞笑文章
  • 心情日记
  • 英语文章
  • 范文大全
  • 作文大全
  • 新闻阅读
  • 当前位置: 山茶花美文网 > 英语文章 > 正文

    SQL,SERVER函数将人民币数字转换成大写形式_人民币书写规则

    时间:2020-05-28来源:山茶花美文网 本文已影响 山茶花美文网手机站

    SQL SERVER函数将人民币数字转换成大写形式

    CREATE FUNCTION [dbo].[f_num_chn] (@num numeric(14,5))

    RETURNS varchar(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(@num*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 @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函数将人民币数字转换成大写形式

    闲着也是闲着,欢迎大家多提宝贵意见

    --阿拉伯数字转中文大写数字

    Create function NToCC(@n int)

    returns varchar(2)

    as

    begin

    declare @s varchar(2)

    if @n=0

    set @s=""零""

    if @n=1

    set @s=""壹""

    if @n=2

    set @s=""贰""

    if @n=3

    set @s=""叁""

    if @n=4

    set @s=""肆""

    if @n=5

    set @s=""伍""

    if @n=6

    set @s=""陆""

    if @n=7

    set @s=""柒""

    if @n=8

    set @s=""捌""

    if @n=9

    set @s=""玖""

    return @s

    end

    --可支持到上亿

    Create function numbertoChineseBigString(@m money)

    returns varchar(255)

    begin

    declare @i varchar(255)

    declare @f varchar(255)

    declare @r varchar(255)

    declare @s varchar(255)

    set @s=convert(varchar(255),@m)

    if charindex(""."",@s)>0

    begin

    set @i=substring(@s,1,charindex(""."",@s)-1)

    set @f=substring(@s,charindex(""."",@s)+1,len(@s))

    end

    else

    set @i=@s

    set @r=""""

    declare @k int

    set @k=len(@i)

    while @k>=1

    begin

    --最多9位

    if @k=9

    set @r=@r+

    dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))

    --@i

    +""亿""

    if @k=8

    set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+""千""

    if @k=7

    set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+""佰""

    if @k=6

    set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+""拾""

    if @k=5

    set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+""万""

    if @k=4

    set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+""千""

    if @k=3

    set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+""佰""

    if @k=2

    set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+""拾""

    if @k=1

    set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+""元""

    set @k=@k-1

    end

    if convert(float,@f)=0

    set @r=@r+""整""

    else

    begin

    if substring(@s,1,1)>""""

    set @r=@r+dbo.NToCC(convert(int,substring(@f,1,1)))+""角""

    if substring(@s,2,1)>""""

    set @r=@r+dbo.NToCC(convert(int,substring(@f,2,1)))+""分""

    end

    • SQL,SERVER函数将人民币数字转换成大写形式_人民币书写规则 相关文章:
    • 爱情文章
    • 亲情文章
    • 友情文章
    • 随笔
    • 哲理
    • 励志
    • 范文大全