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

          常用鏈接

          統(tǒng)計(jì)

          積分與排名

          friends

          link

          最新評論

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

          /********************************************************
          作者:(wleii165@yahoo.com)
          版本:1.0
          創(chuàng)建時(shí)間:20020227
          修改時(shí)間:
          功能:小寫金額轉(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 閱讀(327) 評論(0)  編輯  收藏 所屬分類: MSSQL

          主站蜘蛛池模板: 沾益县| 拜泉县| 楚雄市| 东宁县| 黎平县| 双柏县| 建阳市| 邵阳县| 阿克陶县| 宝应县| 栖霞市| 轮台县| 怀来县| 鄂尔多斯市| 泸定县| 萨迦县| 旬邑县| 织金县| 无棣县| 马山县| 大余县| 通河县| 定结县| 南昌县| 石柱| 衡东县| 金山区| 大英县| 新安县| 沈阳市| 宕昌县| 宁海县| 河曲县| 全南县| 铜梁县| 若羌县| 甘泉县| 谢通门县| 靖宇县| 丹阳市| 葫芦岛市|