小写金额转换成大写

sqlserver实现数字转人民币大写 sqlserver自定义函数----报表的数字转人民币大写,可以保存到自己数据库日后使用! 阅读详情

原作在SQL 2000中有一些问题。修正错误并在SQL 2000中运行通过。

/********************************************************
作者:(wleii165@yahoo.com)
版本:1.0
创建时间:20020227
修改时间:
功能:小写金额转换成大写
参数: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))) --四舍五入为指定的精度并删除数据左右空格

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

调用过程:

declare @ret varchar(200)

exec L2U 567983.897,1,@ret output

select @ret

 

SQL 金额数值转换成中文大写 需求:将金额转换成中文大写格式填入单据合计行: _佰_拾_万_仟_佰_拾_元_角_分。测试:将amount列的值转换为中文大写。2.在查询条件中直接转换。 阅读详情

相关推荐

sql笔记:SQL SERVER金额转成大写金额(标量值函数创建、标量值函数调用)

笔记:SQL SERVER金额转成大写金额(标量值函数创建、标量值函数调用)

悠闲饭团的博客 1027

小写转大写金额[SQL SERVER]

 原作在SQL 2000中有一些问题。修正错误并在SQL 2000中运行通过。/********************************************************作者:(wleii165@yahoo.com)版本:1.0创建时间:20020227修改时间:功能:小写金额转换成大写参数:n_LowerMoney 小写金额          v_TransType 种

maomao007的专栏 963

sqlserver金额转大写汉字的函数

该函数用于将金额转成汉字大写,例如57.91500转换成伍拾柒元玖角贰分整

阿拉伯数值转换成中文数值

拓展方法之数值转换成中文数值对数值进行转化将数值进行拆分将数值转换成汉字Demo 对数值进行转化 public static string ToChinese(this byte index) { return GetChinese(index.ToString()); } public static string ToChinese(this ushort index) { return GetChinese(index.ToString()); } public static string ToC

Dragon Peng 的博客 566

盘点那些好用的SAP FIORI App(二) -上传凭证Upload Journal Entry

SAP FICO运维问题及解决方案分享

lijinbao171022的博客 1542

避开这些坑!STM32H750 IAP升级实战:从Bootloader设计到APP接收的完整避坑指南

本文深入探讨STM32H750 IAP升级的完整避坑指南,从Bootloader设计到APP接收的全流程实践。特别针对QSPI Flash运行限制、SRAM跳转机制和固件校验等核心问题,提供工业级解决方案,帮助开发者提升升级成功率和系统稳定性。

weixin_30471561的博客 275

大写金额转换成小写

Q:如何将大写金额转换成小写? A:简单点,格式比较严格private float getMoney(string strBig)        ...{            string strExp="";            string[] arrBig  = 

jinjazz 5183

VScode中配置 C/C++ 环境,超级详细,问题分析全面,绝对好用

VScode中配置 C/C++ 环境,超级详细,问题分析全面,绝对好用 VScode中配置 C/C++ 环境 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 1. 下载编辑器VScode 1.官网:https://code.visualstudio.com/ 2. 安装VScode(建议附加任务全部勾选; 2. 下载编译器MinGW并解压 官网页面:https://www.mi

m0_46147064的博客 8万+

怎样让小写自动转换成大写_利用SUM函数和NUMBERSTRING函数自动把小写金额转换成大写金额...

EXCEL函数公式大全之利用SUM函数和NUMBERSTRING函数把小写金额转换成大写中文金额。EXCEL函数与公式在工作中使用非常的频繁,会不会使用公式直接决定了我们的工作效率,今天我们来学习一下提高我们工作效率的函数SUM函数和NUMBERSTRING函数。在日常的工作中,我们经常要进行费用报销,费用报销经常要小写金额和大写金额一块存在。今天我们这个例子就是利用NUMBERSTRING函数自...

weixin_39860946的博客 1441

[低代码 + AI] 明道云与 Dify 的三种融合实践方式详解

融合方式技术路径优点局限或注意事项UI 嵌入iframe 表单嵌入快速集成、用户体验一致无法自定义交互逻辑明道云调用 DifyAPI 请求节点工作流自动化、逻辑灵活有 timeout 限制、需优化 promptDify 调用明道云插件或 API 调用节点可查询实际业务数据、增强 AI 智能需理解明道云 API 结构、权限设置复杂明道云与 Dify 的结合为低代码平台注入了智能动力。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 1187

YOLOv8 智能交通流量监测完整解决方案

YOLOv8智能交通流量监测系统基于先进的目标检测技术,提供实时车辆识别与统计分析功能。该系统通过虚拟检测线实现多方向车流量统计,支持多种车辆类型分类,并具备数据可视化、异常事件预警等核心功能。完整解决方案包含模型训练、实时检测、批量处理、结果分析等模块,并提供Flask API和Docker两种部署方案。系统采用YOLOv8算法实现高效检测,支持GPU加速,可通过量化、剪枝等技术进一步优化性能,为智能交通管理提供可靠的数据支持和技术保障。

u010117029的博客 118

小写数字转大写_利用SUM函数和NUMBERSTRING函数自动把小写金额转换成大写金额

EXCEL函数公式大全之利用SUM函数和NUMBERSTRING函数把小写金额转换成大写中文金额。EXCEL函数与公式在工作中使用非常的频繁,会不会使用公式直接决定了我们的工作效率,今天我们来学习一下提高我们工作效率的函数SUM函数和NUMBERSTRING函数。在日常的工作中,我们经常要进行费用报销,费用报销经常要小写金额和大写金额一块存在。今天我们这个例子就是利用NUMBERSTRING函数自...

weixin_42117224的博客 5265

beegfs读取文件完整流程分析

读取小于512KB文件数据,小于1s 读取15MB文件数据,花费7秒。

wfzy的博客 833

将小写金额转换成中文大写

FUNCTION ZCONV_AMOUNT_MB. *"-------------------------------------------------------------------- "“局部接口: *” IMPORTING *" REFERENCE(VA1) TYPE P *" CHANGING *" REFERENCE(STR) TYPE MAKT-MAKTX...

Daisy08503的博客 314

GFPS技术原理(一)-简介

GFPS(谷歌快速配对服务)利用BLE技术简化设备配对流程,相比传统方式大幅提升用户体验。首次配对时,设备广播包含型号ID和安全密钥的BLE信号,手机检测后弹出配对通知,用户点击即可完成安全连接并将设备与Google账户绑定。该技术支持跨设备同步、电量显示、找回设备等功能,后续配对更加便捷。GFPS通过BLE实现快速发现、一键配对和安全连接,结合Google后端服务提供元数据支持,已成为出海设备的认证标准。其核心优势在于简化操作步骤并增强功能性,特别适合非技术用户群体。

十多年蓝牙协议软件开发,擅长蓝牙协议分析 2062

36、T5L 迪文屏C51开发之绘制动态曲线

T5L 迪文屏C51开发之绘制动态曲线1、介绍2、例程功能简介3、GUI界面设计3、C51程序设计 1、介绍   本文将利用DGUS Tool软件中的【动态曲线控件】来绘制曲线效果,在T5L迪文屏中总共支持8个通道的曲线,而曲线数据是需要缓冲区的,如果 8 通道曲线同时使用,0x1000-0x4FFF 将作为曲线缓冲区地址,此时该部分变量地址不能被其他控键使用,其他控键地址使用范围为0x5000-0xFFFF,当某曲线通道不被使用时,那么其所对应的缓冲区地址可以做其他用途,曲线通道具体的地址分布如下图所示:

嵌入式羊圈 3131

金额数字(小写)转换成文字(大写)

  private static string[] shuzi={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};  private static string[] danwei={"分","角","元","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟"};  public static string MoneyConvert

liushenjun的专栏 1422

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

小写金额转换成大写金额

将大写的数字和单位分别保存在两个字符串中 去除用户输入的小写金额中的小数点 根据用户输入的小写金额长度取出该字符串所用的单位 取出小写字符对应的大写字符,并与单位组成新的字符串,对小写金额中存在连续多个0的情况进行处理 对用户输入的小写金额进行合理性判断 function convert(){ var money_num = document.getElementById("money_n...

you can you up up up的博客 2532

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SQL把小写的金额转换成大写的金额函数

/*----------------------------------------------------------*/ /* [FUpMoney] */ /*----------------------------------------------------------*/ IF EXISTS (...

蚂蚁筑巢 7708

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

小写数字金额,转换成大写中文,绝无错误

小写数字金额,转换成大写中文,绝无错误function  mxb(){  newchar="";Num=document.form1.money.value;for(i=Num.length-1;i>=0;i--)  {  Num  =  Num.replace(",","")//替换tomoney()中的“,”  Num  =  Num.replace("  ","")//替换tomoney()

☆★子游★☆★爱无悔★☆ 1072

ASP小写金额转换成大写金额

%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>http://www.w3.org/TR/html4/loose.dtd">无标题文档function Arabia_to_Chinese(Num){ for(i=Num.length-1;i>=0;i--) {  Num = Num.replace(",","")//替换tomoney()中的“,”  Num = Num

itzhiren的专栏 1609

Java 将小写金额转换成大写金额

将小写金额转换成大写金额 例如:110.00转换后为 壹佰壹拾圆整 代码如下/** * 将小写金额转换为大写 * * @param amount * 110.00 * @return 壹佰壹拾圆整 */ public static String amountToUpper(String amount) t

yincheng的博客 1296

将小写的金额转换成中文的大写金额

/** * 作者:陈伟兵 * MSN: cwbnig@hotmail.com * Q Q:  56235312 * 信箱:chenweibing1982@163.com */import java.lang.Math;/** * 将小写的金额转换成中文的大写金额 * 如“5460”转换成“伍千肆百陆十零” * 本程序暂时对单位只支持到亿 */public class DateToChinese

陈伟兵的专栏 1454

Oracle如何将小写金额转换成大写

为了制作费用报销单,用到ireport 工具制作报表,需要将小写金额转换成以下形式!   在网上看过很多例子,出现两种状况:一是在oracle执行不了;二是执行的结果不是我要的形式,所以小菜鸟我自行写了一个函数,本来想用case写条件,但是本人能力有限,只会用if-elsif-else-end if 来写,如果各位大侠会用case 写,请多多赐教!以下函数经过验证,是可以用滴!看以下函数:

IVY_123IVY的专栏 1420
上一篇: sql语句提高查询效率
下一篇: sql陽曆轉陰曆
edpdennis
博客等级 码龄19年 10粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值