最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-09 07:14:04
文档

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

SQL货币数字转英文字符语句: 代码如下:Alter Function UDF_Util_ConvertCurrencyToEnglish ( @Money Numeric(15,2), @Unit varchar(10)='BAHT' ) Returns Varchar(400) As /* /// <summary> /// Convert money to engl
推荐度:
导读SQL货币数字转英文字符语句: 代码如下:Alter Function UDF_Util_ConvertCurrencyToEnglish ( @Money Numeric(15,2), @Unit varchar(10)='BAHT' ) Returns Varchar(400) As /* /// <summary> /// Convert money to engl


代码如下:
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实现货币换算的方法
  • 文档

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

    SQL货币数字转英文字符语句: 代码如下:Alter Function UDF_Util_ConvertCurrencyToEnglish ( @Money Numeric(15,2), @Unit varchar(10)='BAHT' ) Returns Varchar(400) As /* /// <summary> /// Convert money to engl
    推荐度:
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top