gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章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

最后此篇关于SQL货币数字转英文字符语句的文章就讲到这里了,如果你想了解更多关于SQL货币数字转英文字符语句的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com