阿拉伯数字转大写中文_财务常用sql存储过程
在数据库系统中,我们可以创建一个函数来实现这一转换。假设我们正在使用SQL Server 2000,那么可以如下创建这个函数:
```sql
CREATE FUNCTION ConvertToChineseCurrency (@num INT) RETURNS VARCHAR(200) AS
BEGIN
DECLARE @temp INT, @res INT, @i TINYINT, @str VARCHAR(200), @unit VARCHAR(50)
DECLARE @dict CHAR(10) = '零壹贰叁肆伍陆柒捌玖'
DECLARE @unitDict CHAR(50) = '十佰仟万拾万佰万亿'
SET @str = ''
SET @temp = @num
SET @i = 1
SET @unit = SUBSTRING(@unitDict, (@i-1)3-2, 3) -- 根据位数选择单位(个、拾、佰、仟等)
WHILE @temp > 0
BEGIN
SET @res = @temp % 10 -- 取最后一位数字
SET @str = SUBSTRING(@dict, @res + 1, 1) + CASE WHEN @res <> 0 THEN SUBSTRING(@unit, 1, 1) ELSE '' END + @str -- 添加数字和可能的单位
SET @temp = @temp / 10 -- 去掉最后一位数字
SET @i = CASE WHEN @temp > 0 THEN @i ELSE @i - 1 END -- 判断是否需要进入下一位处理,或减少处理位数(当数字为整万、整亿等时)
SET @unit = SUBSTRING(@unitDict, (@i-1)3-2, 3) -- 更新单位选择列表的位置
END
SET @str = REPLACE(@str, '零十', '零') -- 处理连续的零和十的情况,例如零万亿十亿等不合法情况
SET @str = REPLACE(@str, '零万', '万') -- 处理整万的情况,例如零万壹拾万等不合法情况
SET @str = REPLACE(@str, '零亿', '亿') -- 处理整亿的情况,例如零亿壹拾亿等不合法情况
IF RIGHT(@str, 1) = '零' SET @str = LEFT(@str, LEN(@str)-1) -- 如果最后一个字符是零,则去掉它(如“零万”不需要末尾的零)
RETURN @str + '元整' -- 添加单位“元整”作为结尾(根据实际需求可能需要做其他处理)
END GO
```
测试该函数的效果如下:
```sql
SELECT dbo.ConvertToChineseCurrency(900000000), dbo.ConvertToChineseCurrency(903002051), dbo.ConvertToChineseCurrency(903002050)
```
这个函数将能够处理大多数整数情况,如果需要处理带有小数点和单位的金额,可能需要进一步的逻辑处理。上述代码只是一个基础版本,可以根据实际需求进行调整和优化。
编程语言
- 阿拉伯数字转大写中文_财务常用sql存储过程
- PHP ajax 异步执行不等待执行结果的处理方法
- php生出随机字符串
- jQuery中 attr() 方法使用小结
- php内嵌函数用法实例
- PHP实现将上传图片自动缩放到指定分辨率,并保
- js时间转换毫秒的实例代码
- PHP中两个float(浮点数)比较实例分析
- 微信小程序收货地址API兼容低版本解决方法
- Vue Spa切换页面时更改标题的实例代码
- JavaScript中的关联数组问题
- vue.js实现请求数据的方法示例
- 解析PHP获取当前网址及域名的实现代码
- thinkPHP使用pclzip打包备份mysql数据库的方法
- PHP vsprintf()函数格式化字符串操作原理解析
- JavaScript中检查对象property的存在性方法介绍