兴国资源网 Design By www.nnzcdc.com
复制代码 代码如下:
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
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
兴国资源网 Design By www.nnzcdc.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
兴国资源网 Design By www.nnzcdc.com
暂无评论...
更新日志
2024年10月09日
2024年10月09日
- TGA主持人发文祝贺《暗喻幻想》 国外网友:提名稳了?
- 【原神】V5.0攻略 | 旋曜玉帛收集攻略(序号81~序号90)
- 【原神】V5.0攻略 | 旋曜玉帛收集攻略(序号91~序号100)
- 2024周年庆兑换码最新分享,兑换码一览
- 无悔华夏魏晋二期全新剧本更新内容一览
- 斗罗大陆逆转时空提升战力攻略 怎么提升战力
- 炉石传说酒馆战棋阵容推荐2024 酒馆战棋阵容排行榜
- s14全球总决赛瑞士轮抽签规则是什么 瑞士轮抽签结果规则介绍
- s14全球总决赛瑞士轮队伍有哪些 世界赛瑞士轮队伍名单一览
- s14全球总决赛瑞士轮赛制是什么 全球总决赛瑞士轮赛制详情
- 《COD21》全新剧情宣传片:10月25日XGP见!
- 美国拳王家门口身中7枪遇害 年仅31岁凶手仍未被逮捕
- 《寂静岭2》重制版光追对比:氛围更加恐怖
- 林慧萍.1982-往昔(飞跃复刻版)【歌林】【WAV+CUE】
- 陈楚生.2007-原来我一直都不孤单(EP)【天娱传媒】【WAV+CUE】