love fish大鵬一曰同風(fēng)起,扶搖直上九萬里

          常用鏈接

          統(tǒng)計

          積分與排名

          friends

          link

          最新評論

          金額阿拉伯?dāng)?shù)字轉(zhuǎn)換為中文的存儲過程

          /********************************************************
          作者:(wleii165@yahoo.com)
          版本: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?='+@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

          調(diào)用過程:

          declare?@ret?varchar(200)

          exec?L2U?567983.897,1,@ret?output

          select?@ret

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

          主站蜘蛛池模板: 西充县| 安吉县| 刚察县| 石渠县| 定南县| 宁陕县| 普兰县| 东港市| 巨野县| 金昌市| 安国市| 鞍山市| 应城市| 罗田县| 长沙县| 嵩明县| 昌宁县| 昭觉县| 郑州市| 松江区| 霍邱县| 手游| 乐都县| 威远县| 肇东市| 白沙| 齐河县| 汾西县| 吴堡县| 含山县| 惠水县| 诸城市| 昌都县| 太仆寺旗| 天峨县| 阿拉善右旗| 南汇区| 漯河市| 陆川县| 金坛市| 西峡县|