小寫轉大寫金額[SQL SERVER] (轉)
原作在 2000中有一些問題。修正錯誤並在SQL 2000中執行透過。
/********************************************************
作者:(wleii165@.com)
版本:1.0
建立時間:20020227
修改時間:
功能:小寫金額轉換成大寫
引數:n_LowerMoney 小寫金額
v_TransType 種類 -- 1: directly translate, 0: read it in s
輸出:大寫金額
********************************************************/
CREATE PROCEDURE o.L2U
(
@n_LowerMoney numeric(15,2),
@v_TransType int,
@RET VARCHAR(200) output
)
AS
Declare @v_LowerStr VARCHAR(200) -- 小寫金額
Declare @v_UpperPart VARCHAR(200)
Declare @v_UpperStr VARCHAR(200) -- 大寫金額
Declare @i_I int
set nocount on
@v_LowerStr = LTRIM(RTRIM(STR(@n_LowerMoney,20,2))) --四捨五入為指定的精度並刪除資料左右空格
select @i_I = 1
select @v_UpperStr = ''
while ( @i_I <= len(@v_LowerStr))
begin
select @v_UpperPart = case substring(@v_LowerStr,len(@v_LowerStr) - @i_I + 1,1)
WHEN '.' THEN '元'
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_I
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 '拾'
WHEN 10 THEN '佰'
WHEN 11 THEN '仟'
WHEN 12 THEN '億'
WHEN 13 THEN '拾'
WHEN 14 THEN '佰'
WHEN 15 THEN '仟'
WHEN 16 THEN '萬'
ELSE ''
END
select @v_UpperStr = @v_UpperPart + @v_UpperStr
select @i_I = @i_I + 1
end
--------print '//v_UpperStr ='+@v_UpperStr +'//'
if ( @v_TransType=0 )
begin
select @v_UpperStr = REPLACE(@v_UpperStr,'零拾','零')
select @v_UpperStr = REPLACE(@v_UpperStr,'零佰','零')
select @v_UpperStr = REPLACE(@v_UpperStr,'零仟','零')
select @v_UpperStr = REPLACE(@v_UpperStr,'零零零','零')
select @v_UpperStr = REPLACE(@v_UpperStr,'零零','零')
select @v_UpperStr = REPLACE(@v_UpperStr,'零角零分','整')
select @v_UpperStr = REPLACE(@v_UpperStr,'零分','整')
select @v_UpperStr = REPLACE(@v_UpperStr,'零角','零')
select @v_UpperStr = REPLACE(@v_UpperStr,'零億零萬零元','億元')
select @v_UpperStr = REPLACE(@v_UpperStr,'億零萬零元','億元')
select @v_UpperStr = REPLACE(@v_UpperStr,'零億零萬','億')
select @v_UpperStr = REPLACE(@v_UpperStr,'零萬零元','萬元')
select @v_UpperStr = REPLACE(@v_UpperStr,'萬零元','萬元')
select @v_UpperStr = REPLACE(@v_UpperStr,'零億','億')
select @v_UpperStr = REPLACE(@v_UpperStr,'零萬','萬')
select @v_UpperStr = REPLACE(@v_UpperStr,'零元','元')
select @v_UpperStr = REPLACE(@v_UpperStr,'零零','零')
end
-- 對壹元以下的金額的處理
if ( substring(@v_UpperStr,1,1)='元' )
begin
select @v_UpperStr = substring(@v_UpperStr,2,(len(@v_UpperStr) - 1))
end
if (substring(@v_UpperStr,1,1)= '零')
begin
select @v_UpperStr = substring(@v_UpperStr,2,(len(@v_UpperStr) - 1))
end
if (substring(@v_UpperStr,1,1)='角')
begin
select @v_UpperStr = substring(@v_UpperStr,2,(len(@v_UpperStr) - 1))
end
if ( substring(@v_UpperStr,1,1)='分')
begin
select @v_UpperStr = substring(@v_UpperStr,2,(len(@v_UpperStr) - 1))
end
if (substring(@v_UpperStr,1,1)='整')
begin
select @v_UpperStr = '零元整'
end
select @ret=@v_UpperStr
GO
過程:
declare @ret varchar(200)
exec L2U 567983.897,1,@ret output
select @ret
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993295/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 小寫轉大寫金額儲存過程[SQL SERVER]儲存過程SQLServer
- plsql小寫金額轉大寫金額函式SQL函式
- 小寫金額轉換為大寫
- Excel金額小寫轉大寫公式Excel公式
- 小寫數字金額轉大寫
- 金額大寫轉換(轉)
- 大寫金額轉換 (轉)
- 小寫轉大寫金額在C++中的實現 (轉)C++
- 金額大寫轉換(摘)
- Python 轉換金額數字大寫為數字小寫Python
- 阿拉伯數字轉換成金額大寫金額(包括小數)
- 將金錢的金額轉換為大寫形式
- 將金錢數額轉換為大寫
- 金額大小寫轉換(3)
- jquery金額數字轉為大寫數字jQuery
- 轉Java開發 Java 小寫轉大寫Java
- asp.net 寫一個RMB金額大寫轉換器(原始碼)ASP.NET原始碼
- 轉換金額大寫的SHELL程式(絕對透過驗證)(轉)
- 金額數值轉換為中文大寫
- JavaScript 小寫數字轉換為大寫JavaScript
- 人民幣小寫轉換為大寫
- php首字母小寫怎麼轉大寫PHP
- js將小寫數字轉換為大寫形式JS
- 常見物件-把字串的首字母轉大寫其他轉小寫物件字串
- 【踩坑系列】使用long型別處理金額,科學計數法導致金額轉大寫異常型別
- JavaScript將輸入的數字金額轉換成對應的中文大寫金額JavaScript
- lotus 中日期小寫轉大寫的函式及演算法(lotus script) (轉)函式演算法
- 試題 演算法提高 小寫轉換為大寫 C++演算法C++
- C語言:將字串中所有小寫字母轉為大寫字母C語言字串
- 金額轉換
- .NET神器:輕鬆實現數字轉大寫金額的秘籍與示例程式碼
- js金錢轉換為小額的功能JS
- javascript 人民幣小寫轉換為大寫形式程式碼例項JavaScript
- excel大寫字母轉換Excel
- 轉大寫函式MoneyCn函式
- sql server 大小寫敏感SQLServer
- js 小寫轉換,取字尾JS
- php人民幣小寫轉大寫函式,不限長度,精確到分PHP函式