love fish大鵬一曰同風起,扶搖直上九萬里

          常用鏈接

          統計

          積分與排名

          friends

          link

          最新評論

          金額阿拉伯數字轉換為中文的存儲過程

          /********************************************************
          作者:(wleii165@yahoo.com)
          版本:1.0
          創建時間:20020227
          修改時間:
          功能:小寫金額轉換成大寫
          參數: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)))?--四舍五入為指定的精度并刪除數據左右空格

          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

          posted on 2007-01-16 15:46 liaojiyong 閱讀(323) 評論(0)  編輯  收藏 所屬分類: MSSQL

          主站蜘蛛池模板: 梨树县| 康保县| 泰和县| 汨罗市| 汝城县| 徐州市| 大英县| 大庆市| 东方市| 泸西县| 时尚| 金乡县| 合江县| 岑巩县| 卢龙县| 房产| 泰州市| 平遥县| 连山| 永胜县| 临沂市| 浦东新区| 连城县| 沁源县| 易门县| 沅陵县| 武乡县| 马鞍山市| 尤溪县| 苏州市| 东兰县| 溧水县| 嘉禾县| 女性| 唐河县| 象州县| 德令哈市| 罗山县| 郓城县| 西林县| 南部县|