成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

輸入小寫金額,輸出大寫金額的SQL函數寫法

數據庫 SQL Server
如果使用SQL函數,能否實現將小寫金額轉換成大寫呢?答案是肯定的。下面就將為您介紹輸入小寫金額,輸出大寫金額的SQL函數寫法,供您參考。

下面為您介紹的SQL函數功能是將小寫金額轉換成大寫,如果您在此方面遇到過問題,不妨一看,相信對您學習SQL函數能夠有所幫助。

參數:@LowerMoney 小寫金額 加上小數點最長可以保留38位
輸出:大寫金額
簡介:SQL版 小寫金額轉換成大寫金額(最多可以精確到小數點四位)
注: Decimal 數據類型最多可存儲 38 個數字
轉載:請保留以上信息,謝謝!!!
********************************************************/

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

Create Function LowerToUpper(@LowerMoney Decimal(38,4))
Returns Varchar(200) --返回的大寫金額的字符
As
Begin
Declare @LowerStr Varchar(50) --小寫金額
Declare @UpperStr Varchar(200) --大寫金額
Declare @UpperTmp Varchar(15) --大寫金額的臨時字符串
Declare @i Int --遞增量
Declare @LowerLen Int --小寫金額的總長度

Set @LowerStr = @LowerMoney --把Decimal型的值全部賦給字符串變量 注:(賦值過去的話如8 在字符串變量中是顯示8.0000 因為小數位精確到四位,沒有的話,它會自動補0)
Set @LowerStr = Replace(@LowerStr,'.','') --把小數點替換成空字符 --精確到小數點的四位 角分厘毫

Set @LowerLen = Len(@LowerStr) --獲取小寫金額的總長度(包括四個小數位)
Select @i = 1,@UpperStr = '',@UpperTmp = '' --設置默認初始值

While @i <= @LowerLen
Begin
Set @UpperTmp = Case #p#
When SubString(@LowerStr,@LowerLen - @i + 1,1) = '0' And @i = ***nd (Convert(Int,Right(@LowerStr,4)) = 0 Or @LowerLen > 5) Then '元' --注:如果個位為0的話,并且四位小數都是0或者它的長度超過5(也就是超過元),則為元
--When SubString(@LowerStr,@LowerLen - @i + 1,1) = '0' Then ''
Else
+ Case SubString(@LowerStr,@LowerLen - @i + 1,1) --看當前位是數字幾,就直接替換成漢字繁體大寫
When '0' Then '零'
When '1' Then '壹'
When '2' Then '貳'
When '3' Then '叁'
When '4' Then '肆'
When '5' Then '伍'
When '6' Then '陸'
When '7' Then '柒'
When '8' Then '捌'
When '9' Then '玖'
End
+ Case @i
When 1 Then '毫'
When 2 Then '厘'
When 3 Then '分'
When 4 Then '角'
When 5 Then '元'
When 9 Then '萬'
When 13 Then '億'
When 17 Then '兆'
When 21 Then '京'
When 25 Then '垓'
When 29 Then '杼'
When 33 Then '穰'
When 37 Then '溝' --Decimal型***長度是38 后面的就不用再考慮了
Else #p#
+ Case @i%4
When 2 Then '拾' --拾 6 10 14 18 22 26 30 34 38 …………
When 3 Then '佰' --佰 7 11 15 19 23 27 31 35 39 …………
When 0 Then '仟' --仟 8 12 16 20 24 28 32 36 40 …………
End
End
End
Set @UpperStr = Isnull(@UpperTmp,'') + Isnull(@UpperStr,'')
Set @i = @i + 1
End
If Convert(Int,Right(@LowerStr,4)) = 0 Set @UpperStr = Left(@UpperStr,Len(@UpperStr)-8) + '整' --判斷小數位數是不是都是0,是0就可以取整
While Patindex('%零[仟佰拾角分厘毫零]%',@UpperStr) <> 0 --把零拾或零佰或零零變成一個零
Begin
Set @UpperStr = stuff(@UpperStr,patindex('%零[仟佰拾角分厘毫零]%',@UpperStr),2,'零')
End
While Patindex('%[溝穰杼垓京兆億萬]零[溝穰杼垓京兆億萬]%',@UpperStr) <> 0 --把零萬或零億的清空掉
Begin
Select @UpperStr = Stuff(@UpperStr,Patindex('%[溝穰杼垓京兆億萬]零[溝穰杼垓京兆億萬]%',@UpperStr)+1,2,'')
End
While Patindex('%[仟佰拾]零[溝穰杼垓京兆億萬]%',@UpperStr) <> 0 --把類似拾零萬或佰零萬或仟零萬中間的零清空掉
Begin
Select @UpperStr = Stuff(@UpperStr,Patindex('%[仟佰拾]零[溝穰杼垓京兆億萬]%',@UpperStr)+1,1,'')
End
If Patindex('%_零[元]%',@UpperStr) <> 0 --把類似拾零元或百零元中間的零清空掉
Begin
Select @UpperStr = Stuff(@UpperStr,Patindex('%_零[元]%',@UpperStr) + 1,1,'')
End
Else If (Patindex('零[元]%',@UpperStr) <> 0) And (Convert(Int,Right(@LowerStr,4)) <> 0) --判斷當前否是零元開頭,并且后面的四個小數不為0
Begin
Select @UpperStr = Stuff(@UpperStr,Patindex('零[元]%',@UpperStr),2,'') --把零元清空掉
End
If Right(@UpperStr,1) = '零' Set @UpperStr = Left(@UpperStr,Len(@UpperStr)-1) --如果***一位是零也清空掉
If @UpperStr = '元整' Set @UpperStr = '零' + @UpperStr --如果只是0的話,就顯示零元整
Return @UpperStr --返回大寫金額
End

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO #p#


--調用方法
Select dbo.LowerToUpper(120000000) --壹億貳仟萬元整
Select dbo.LowerToUpper(102000000) --壹億零貳佰萬元整
Select dbo.LowerToUpper(100200000) --壹億零貳拾萬元整
Select dbo.LowerToUpper(100020000) --壹億零貳萬元整
Select dbo.LowerToUpper(100002000) --壹億貳仟元整

 

 

【編輯推薦】

去掉參數內HTML代碼的SQL函數

sql函數生成助記碼的實例

SQL中表變量的不足

詳解SQL中循環結構的使用

SQL循環執行while控制

責任編輯:段燃 來源: 互聯網
相關推薦

2010-03-25 10:39:26

Python代碼

2023-11-24 08:17:38

金額類型存儲

2020-03-11 09:00:00

數據平臺架構

2023-09-22 11:04:14

2012-04-11 11:48:20

蘋果

2015-05-20 16:48:40

2025-02-07 15:06:30

2010-03-16 17:14:19

Python字符串

2010-09-25 11:32:20

SQL主鍵約束

2010-09-08 16:38:13

SQL循環語句

2024-01-03 15:56:43

2023-09-25 15:01:16

2020-09-11 11:26:29

勒索軟件網絡保險網絡攻擊

2011-06-08 14:31:04

Java

2010-09-13 13:44:22

sql server外

2010-09-28 15:07:14

SQL語句

2010-09-17 13:54:02

SQL語句

2010-09-07 15:12:25

SQL語句優化

2010-11-09 16:20:46

SQL Server死

2010-09-01 15:43:57

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: ririsao久久精品一区 | 日韩美女一区二区三区在线观看 | 日韩欧美久久精品 | www日韩高清 | 99视频免费在线观看 | 97成人精品| 黄色电影在线免费观看 | 久久久精品网站 | 99热欧美 | 免费成人av | 成人网在线观看 | 91综合网| 在线婷婷 | 免费观看羞羞视频网站 | 久久精品国产一区二区三区不卡 | 成人免费视频网 | 91精品国产麻豆 | 国产精品视频免费看 | 日韩视频在线一区 | 日韩免费视频一区二区 | 夜久久| 久草在线在线精品观看 | 蜜桃av鲁一鲁一鲁一鲁 | 中文字幕一区二区三区四区 | 久久国产亚洲 | 久久精选| 欧美久久一区二区 | 国产99久久 | 亚洲一区二区网站 | 国产日韩亚洲欧美 | 九九导航| 麻豆国产一区二区三区四区 | 欧美不卡视频 | 欧美电影网 | 91欧美| 国产成都精品91一区二区三 | 日本电影韩国电影免费观看 | 999久久久| 日韩一级免费观看 | 日韩亚洲一区二区 | 久久久久久久av |