1 / 5
文档名称:

金额小写转大写sql函数.doc

格式:doc   大小:49KB   页数:5
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

金额小写转大写sql函数.doc

上传人:mh900965 2018/3/9 文件大小:49 KB

下载得到文件列表

金额小写转大写sql函数.doc

相关文档

文档介绍

文档介绍:金额小写转大写 sql函数
1.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
--功能: 用于将小写的数值翻译成大写的字符串(支持到分,即小数点后两位)
--入口参数:***@um------数字型变量
--返回:字符串
--举例:select ()
-- 结果为“陆佰贰拾叁元捌角捌分”
ALTER FUNCTION [dbo].[fn_ChnMoney_New](***@um decimal(18,2))
RETURNS varchar(200)
AS
BEGIN
DECLARE ***@chvNum varchar(200)
DECLARE ***@chvMoney varchar(200)
DECLARE ***@chvTemp varchar(200)
DECLARE ***@intIntLen int
DECLARE ***@intI int
DECLARE ***@chvTempI varchar(200)
DECLARE ***@chvReturn varchar(200)
DECLARE ***@sFsFlag int
SET ***@sFsFlag = 0
IF ***@um=0
SET ***@chvMoney = '零'
Else
BEGIN

IF ***@um<0
BEGIN
SET ***@sFsFlag = 1
SET ***@um = ABS(***@um)
END
SET ***@chvTemp=convert(varchar(200),Round(***@um*100,0))
IF charindex('.',***@chvTemp,1)>0
SET ***@chvNum=left(***@chvTemp,charindex('.',***@chvTemp,1)-1)
ELSE
SET ***@chvNum=***@chvTemp


SET ***@intIntLen=len(***@chvNum)

SET ***@chvMoney=''
Set ***@chvReturn = ''
SET ***@intI=1

WHILE ***@intI <= ***@intIntLen
BEGIN
SET ***@chvTempI = substring(***@chvNum,***@intIntLen-***@intI+1,1)
SET ***@chvMoney = substring('零壹贰叁肆伍陆柒捌玖',convert(int,***@chvTempI)+1,1) + substring('分角元拾佰仟万拾佰仟亿拾佰仟兆拾佰仟京拾佰仟',(***@intI-1)+1,1)
SET ***@intI = ***@intI + 1

SET ***@chvReturn = ***@chvMoney + ***@chvReturn
END
END
SET ***@chvReturn=Replace(***@chvReturn,'零仟','零')
SET ***@chvReturn=Replace(***@chvReturn,'零佰','零')
SET ***@chvReturn=Replace(***@chvReturn,'零拾','零')
while charindex('零零',***@chvReturn,1)>