网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的范文:

 

标题 SQL SERVER函数将人民币数字转换成大写形式
范文
    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
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/23 2:08:37