国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

小寫轉(zhuǎn)大寫金額存儲過程[SQL SERVER]

2024-08-31 00:49:24
字體:
供稿:網(wǎng)友

原作在sql 2000中有一些問題。修正錯誤并在sql 2000中運(yùn)行通過。

/********************************************************
作者:([email protected])
版本:1.0
創(chuàng)建時間:20020227
修改時間:
功能:小寫金額轉(zhuǎn)換成大寫
參數(shù):n_lowermoney 小寫金額
          v_transtype 種類 -- 1: directly translate, 0: read it in words
輸出:大寫金額
********************************************************/
create procedure dbo.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

select @v_lowerstr = ltrim(rtrim(str(@n_lowermoney,20,2))) --四舍五入為指定的精度并刪除數(shù)據(jù)左右空格

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 ='[email protected]_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 @[email protected]_upperstr

go

調(diào)用過程:

declare @ret varchar(200)

exec l2u 567983.897,1,@ret output

select @ret

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 田东县| 玉山县| 铜鼓县| 巨野县| 黄大仙区| 宜黄县| 高清| 宜章县| 化德县| 灌阳县| 潍坊市| 九龙坡区| 桐城市| 衡东县| 昌宁县| 集贤县| 怀集县| 梁山县| 深圳市| 元朗区| 彩票| 兰溪市| 平罗县| 洪雅县| 沂水县| 闽侯县| 勃利县| 阳江市| 延寿县| 古浪县| 瑞昌市| 鹤壁市| 格尔木市| 平谷区| 武隆县| 石家庄市| 保靖县| 凤阳县| 进贤县| 邯郸县| 宝丰县|