小寫轉大寫金額儲存過程[SQL SERVER]
(
@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
select @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/66009/viewspace-800720/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 小寫轉大寫金額[SQL SERVER] (轉)SQLServer
- plsql小寫金額轉大寫金額函式SQL函式
- 小寫金額轉換為大寫
- Excel金額小寫轉大寫公式Excel公式
- 小寫數字金額轉大寫
- 編寫和優化SQL Server的儲存過程優化SQLServer儲存過程
- SQL Server 儲存過程SQLServer儲存過程
- 【SQL Server】--儲存過程SQLServer儲存過程
- 金額大寫轉換(轉)
- 大寫金額轉換 (轉)
- 小寫轉大寫金額在C++中的實現 (轉)C++
- MS SQL Server儲存過程SQLServer儲存過程
- Sql Server系列:儲存過程SQLServer儲存過程
- 解密SQL SERVER儲存過程解密SQLServer儲存過程
- 金額大寫轉換(摘)
- SQL SERVER 儲存過程 顯示26個小寫字母及其對應的ASCII碼值SQLServer儲存過程ASCII
- Q&A:在SQL Server 2005中編寫儲存過程RVSQLServer儲存過程
- 近期編寫tcbs儲存過程小記(1)儲存過程
- Python 轉換金額數字大寫為數字小寫Python
- 編寫JAVA儲存過程Java儲存過程
- SQL Server基礎:儲存過程SQLServer儲存過程
- sql server儲存過程語法SQLServer儲存過程
- SQL server儲存過程函式SQLServer儲存過程函式
- 阿拉伯數字轉換成金額大寫金額(包括小數)
- SQL Server 儲存過程的經典分頁(轉)SQLServer儲存過程
- oracle儲存過程書寫格式Oracle儲存過程
- SQL Server 儲存過程的運用SQLServer儲存過程
- SQL Server基礎之儲存過程SQLServer儲存過程
- (SQL Server)分頁的儲存過程SQLServer儲存過程
- 在 SQL Server 的儲存過程中呼叫 Com 元件 (轉)SQLServer儲存過程元件
- 在儲存過程中寫truncate table儲存過程
- SQL Server 禁用擴充套件儲存過程SQLServer套件儲存過程
- SQL Server 資料備份儲存過程SQLServer儲存過程
- ms sql server儲存過程目前使用模板SQLServer儲存過程
- SQL Server儲存過程中raiserror的使用SQLServer儲存過程AIError
- SQL Server儲存過程的優缺點SQLServer儲存過程
- 【SQL Server】常見系統儲存過程SQLServer儲存過程
- 將金錢的金額轉換為大寫形式