快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

金额阿拉伯数字转变为中文的存储过程

Create Procedure AtoC
@ChangeMoney Money
as
Set Nocount ON
Declare @String1 char(20)
Declare @String2 char(30)
Declare @
String4 Varchar(100)
Declare @String3 Varchar(100) --从原A值中取出的值
Declare @i int --循环变量
Declare @J Int --A的值乘以100的字符串长度
Declare @Ch1 Varchar(100) --数字的汉语读法
Declare @Ch2 Varchar(100) --数字位的汉字读法
Declare @Zero Int --用来计算连续有几个零
Declare @ReturnValue VarChar(100)

Select @ReturnValue = \\\'\\\'\\\'\\\'
Select @String1 = \\\'\\\'零壹贰叁肆伍陆柒捌玖\\\'\\\'
Select @String2 = \\\'\\\'万仟佰拾亿仟佰拾万仟佰拾元角分\\\'\\\'

Select @String4 = Cast(@ChangeMoney*100 as int)

select @J=len(cast((@ChangeMoney*100) as int))

Select @String2=Right(@String2,@J)

Select @i = 1

while @i<= @j Begin

Select @String3 = Substring(@String4,@i,1)

if @String3<>\\\'\\\'0\\\'\\\' Begin

Select @Ch1 = Substring(@String1, Cast(@String3 as Int) + 1, 1)
Select @Ch2 = Substring(@String2, @i, 1)
Select @Zero = 0 --表示本位不为零
end
else Begin
If (@Zero = 0) Or (@i = @J - 9) Or (@i = @J - 5) Or (@i = @J - 1)
Select @Ch1 = \\\'\\\'零\\\'\\\'
Else
Select @Ch1 = \\\'\\\'\\\'\\\'

Select @Zero = @Zero + 1 --表示本位为0

--假如转变的数值需要扩大,那么需改动以下表达式 I 的值。
Select Ch2 = \\\'\\\'\\\'\\\'

If @i = @J - 10 Begin
Select @Ch2 = \\\'\\\'亿\\\'\\\'
Select @Zero = 0
end

If @i = @J - 6 Begin
Select @Ch2 = \\\'\\\'万\\\'\\\'
Select @Zero = 0
end

if @i = @J - 2 Begin
Select @Ch2 = \\\'\\\'元\\\'\\\'
Select @Zero = 0
end

If @i = @J
Select @Ch2 = \\\'\\\'整\\\'\\\'

end

Select @ReturnValue = @ReturnValue + @Ch1 + @Ch2

select @i = @i+1
end

--最后将多余的零去掉
If CharIndex(\\\'\\\'仟仟\\\'\\\',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, \\\'\\\'仟仟\\\'\\\', \\\'\\\'仟\\\'\\\')

If CharIndex(\\\'\\\'佰佰\\\'\\\',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, \\\'\\\'佰佰\\\'\\\', \\\'\\\'佰\\\'\\\')

If CharIndex(\\\'\\\'零元\\\'\\\',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, \\\'\\\'零元\\\'\\\', \\\'\\\'元\\\'\\\')

If CharIndex(\\\'\\\'零万\\\'\\\',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, \\\'\\\'零万\\\'\\\', \\\'\\\'万\\\'\\\')

If CharIndex(\\\'\\\'零亿\\\'\\\',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, \\\'\\\'零亿\\\'\\\', \\\'\\\'亿\\\'\\\')

If CharIndex(\\\'\\\'零整\\\'\\\',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, \\\'\\\'零整\\\'\\\', \\\'\\\'整\\\'\\\')

If CharIndex(\\\'\\\'零佰\\\'\\\',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, \\\'\\\'零佰\\\'\\\', \\\'\\\'零\\\'\\\')

If CharIndex(\\\'\\\'零仟\\\'\\\',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, \\\'\\\'零仟\\\'\\\', \\\'\\\'零\\\'\\\')

If CharIndex(\\\'\\\'元元\\\'\\\',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, \\\'\\\'元元\\\'\\\', \\\'\\\'元\\\'\\\')

Select @ReturnValue
GO
返回类别: 教程
上一教程: 远程连接ACCESS数据库的方式
下一教程: SQL服务器外网IP测试故障解决

您可以阅读与"金额阿拉伯数字转变为中文的存储过程"相关的教程:
· 金额阿拉伯数字转变为中文的自定义函数
· 关于值班治理的存储过程
· 将表数据生成SQL脚本的存储过程
· 一个轻易忽视的存储过程问题
· 取得拼音字头的存储过程
    微笑服务 优质保证 索取样品