• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    SQL货币数字转英文字符语句
    复制代码 代码如下:

    Alter Function UDF_Util_ConvertCurrencyToEnglish
    (
    @Money Numeric(15,2),
    @Unit varchar(10)='BAHT'
    ) Returns Varchar(400)
    As
    /*
    /// summary>
    /// Convert money to english
    /// /summary>
    /// param name="@Money">e.g. 1234.56 /param>
    /// param name="@Unit">e.g. 'BAHT' /param>
    /// returns>english money/returns>
    */
    Begin
    DECLARE @result Varchar(400)
    IF @Money=0
    Set @result= 'ZERO '+@Unit
    Else
    Begin
    Declare @i Int, @hundreds Int, @tenth Int, @one Int, @thousand Int,@million Int,@billion Int,@numbers Varchar(400),@s Varchar(15)
    Set @numbers='ONE TWO THREE FOUR FIVE '
    +'SIX SEVEN EIGHT NINE TEN '
    +'ELEVEN TWELEVE THIRTEEN FOURTEEN FIFTEEN '
    +'SIXTEEN SEVENTEEN EIGHTEEN NINETEEN '
    +'TWENTY THIRTY FORTY FIFTY '
    +'SIXTY SEVENTY EIGHTY NINETY '

    Set @s=RIGHT('000000000000000'+Cast(@Money As varchar(15)),15)
    Set @billion=Cast(Substring(@s,1,3) As Int)
    Set @million=Cast(Substring(@s,4,3) As Int)
    Set @thousand=Cast(Substring(@s,7,3) As Int)
    Set @result=''
    Set @i=0

    While @i=3
    BEGIN

    Set @hundreds=Cast(Substring(@s,@i*3+1,1) As Int)
    Set @tenth=Cast(Substring(@s,@i*3+2,1) As Int)
    Set @one=(Case @tenth When 1 Then 10 Else 0 End)+Cast(Substring(@s,@i*3+3,1) As Int)
    Set @tenth=(Case When @tenth=1 Then 0 Else @tenth End)

    IF (@i=3 and (@billion>0 or @million>0 or @thousand>0) and (@hundreds=0 and (@tenth>0 or @one>0)))
    Set @result=@result+' AND '

    IF @hundreds>0
    Set @result=@result+RTRIM(Substring(@numbers,@hundreds*10-9,10))+' HUNDRED '

    IF @tenth>=2 and @tenth=9
    BEGIN
    IF @hundreds>0
    Set @result=@result+' AND '
    Set @result=@result+RTRIM(Substring(@numbers,@tenth*10+171,10))+' '
    END

    IF @one>=1 and @one=19
    BEGIN
    IF @hundreds>0 AND @tenth=0
    Set @result=@result+' AND '
    Set @result=@result+RTRIM(Substring(@numbers,@one*10-9,10))
    END

    IF @i=0 and @billion>0
    Set @result=@result+' BILLION '
    IF @i=1 and @million>0
    Set @result=@result+' MILLION '
    IF @i=2 and @thousand>0
    Set @result=@result+' THOUSAND '
    Set @i=@i+1
    END

    IF(@result>'')
    Set @result=@result+' '+@Unit

    IF Substring(@s,14,2)>'00'
    Begin
    Set @tenth=CAST(Substring(@s,14,1) AS INT)
    Set @one=CAST(Substring(@s,15,1) AS INT)

    IF(@tenth>=2 and @tenth=9)
    Set @result=@result+RTRIM(Substring(@numbers,@tenth*10+171,10))
    IF @tenth=1 AND @one>=1 and @one=19
    Set @result=@result+' '+RTRIM(Substring(@numbers,CAST(Substring(@s,14,2) AS INT)*10-9,10))
    ELSE
    Set @result=@result+' '+RTRIM(Substring(@numbers,@one*10-9,10))

    SET @result=@result+' SATANG '
    END
    ELSE
    Set @result=@result+' ONLY'

    END
    RETURN @result
    END
    您可能感兴趣的文章:
    • C# .net实现货币转换示例
    • Java把数字格式化为货币字符串实例代码
    • asp.net 获取银行货币汇率的代码
    • 用javascript判断输入数据是否货币并自动添加¥符号的代码
    • javascript实现的平方米、亩、公顷单位换算小程序
    • 进制转换算法原理(二进制 八进制 十进制 十六进制)
    • php实现的树形结构数据存取类实例
    • PHP使用get_headers函数判断远程文件是否存在的方法
    • php的mssql数据库连接类实例
    • PHP实现货币换算的方法
    上一篇:判断一个表的数据不在另一个表中最优秀方法
    下一篇:executesql 存储过程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    SQL货币数字转英文字符语句 SQL,货币,数字,转,英文,字符,