当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 金额阿拉伯数字转换为中文的自定义函数

MSSQL
SQL Server中删除重复数据的几个方法
SQL Server 基础概念集
SQL Server导入导出
SQL SERVER实用技巧
sql server 常用函数
如何维护SQL Server的“交易日志”
SQL Server数据备份处理过程探讨
JSP中tomcat的SQL Server2000数据库连接池的配置
SQL Server服务器安装剖析
SQL Server 2005数据加密技术应用研究
SQL Server数据库的备份和恢复措施
SQL Server 2005性能测试实践
Jboss下MS SQL Server配置指导
Oracle和SQL Server 追求完美还是讲求实用
SQL Server服务器安装剖析
SQL Server:Oracle与SQL Server事务处理的比较
SQL Server:利用配置文件实现SQL Server与Oralce访问类的转换
SQL Server:测试SQL Server业务规则链接方法
SQL Server :SQL Server 2008高可用性解决方案优劣分析
SQLServer:数据库恢复

MSSQL 中的 金额阿拉伯数字转换为中文的自定义函数


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 54 ::
收藏到网摘: n/a

  CREATE FUNCTION ChangeBigSmall
(@ChangeMoney money)  
RETURNS VarChar(100) AS  

BEGIN
    Declare    @String1    char(20)
    Declare    @String2    char(30)
    Declare    @String4    Varchar(100)
    Declare @String3     Varchar(100)    --从原A值中取出的值
    Declare @i         int        --循环变量
    Declare @J         Int        --A的值乘以100的字符串长度
    Declare @Ch1         Varchar(100)    --数字的汉语读法
    Declare @Ch2         Varchar(100)    --数字位的汉字读法
    Declare @Zero         Int        --用来计算连续有几个零
    Declare    @ReturnValue    VarChar(100)

    Select  @ReturnValue = ''
    Select     @String1 = '零壹贰叁肆伍陆柒捌玖'
    Select    @String2 = '万仟佰拾亿仟佰拾万仟佰拾元角分'

    Select @String4 = Cast(@ChangeMoney*100 as int)    

    select @J=len(cast((@ChangeMoney*100) as int))

    Select @String2=Right(@String2,@J)

    Select    @i = 1

    while    @i<= @j Begin

        Select @String3 = Substring(@String4,@i,1)

        if @String3<>'0' Begin

            Select     @Ch1 = Substring(@String1, Cast(@String3 as Int) + 1, 1)
            Select    @Ch2 = Substring(@String2, @i, 1)
            Select    @Zero = 0                    --表示本位不为零
        end
        else Begin
            If (@Zero = 0) Or (@i = @J - 9) Or (@i = @J - 5) Or (@i = @J - 1)
                        Select @Ch1 = '零'
                    Else
                        Select @Ch1 = ''

                    Select @Zero = @Zero + 1             --表示本位为0
                        
            --如果转换的数值需要扩大,那么需改动以下表达式 I 的值。
&nb