阿拉伯数字转大写中文_财务常用sql存储过程

例:输入12345,程序给出:壹万贰仟叁佰肆拾伍

例:输入10023040,程序给出:壹仟另贰万叁仟另肆拾

解决方案之一(在SqlServer2000中测试通过):

CREATE FUNCTION fun_cgnum

(@num INT)

RETURNS VARCHAR(100)

AS

BEGIN

DECLARE @temp INT,@res INT,@i TINYINT

DECLARE @str VARCHAR(100),@no VARCHAR(20),@unit VARCHAR(16)

SELECT @str='',@no='另壹贰叁肆伍陆柒捌玖',@unit='拾佰仟万拾佰仟亿'

SET @temp=@num

SELECT @i=0,@res=@temp%10,@temp=@temp/10

WHILE @temp>0

BEGIN

IF @i=0

SET @str=SUBSTRING(@no,@res+1,1)

ELSE

SET @str=SUBSTRING(@no,@res+1,1)+SUBSTRING(@unit,@i,1)+@str

SELECT @res=@temp%10,@temp=@temp/10

SET @i=@i+1

END

SET @str=SUBSTRING(@no,@res+1,1)+SUBSTRING(@unit,@i,1)+@str

SET @str=REPLACE(@str,'另拾','另')

SET @str=REPLACE(@str,'另佰','另')

SET @str=REPLACE(@str,'另仟','另')

SET @str=REPLACE(@str,'另拾','另')

SET @str=REPLACE(@str,'另万','万')

WHILE @i>0

BEGIN

SET @str=REPLACE(@str,'另另','另')

SET @i=CHARINDEX('另另',@str)

END

SET @str=REPLACE(@str,'另万','万')

SET @str=REPLACE(@str,'亿万','亿')

IF RIGHT(@str,1)='另'

SET @str=LEFT(@str,LEN(@str)-1)

RETURN @str

END

GO

--测试:有0和没有0的情况

SELECT dbo.fun_cgnum(900000000),dbo.fun_cgnum(903002051),dbo.fun_cgnum(903002050)

PS:有兴趣的朋友可以继续考虑有小数点以及添加单位(元/角/分)的情况

时间: 2024-07-29 00:36:27

阿拉伯数字转大写中文_财务常用sql存储过程的相关文章

阿拉伯数字转大写中文_财务常用sql存储过程_MsSql

例:输入12345,程序给出:壹万贰仟叁佰肆拾伍 例:输入10023040,程序给出:壹仟另贰万叁仟另肆拾 解决方案之一(在SqlServer2000中测试通过): CREATE FUNCTION fun_cgnum (@num INT) RETURNS VARCHAR(100) AS BEGIN DECLARE @temp INT,@res INT,@i TINYINT DECLARE @str VARCHAR(100),@no VARCHAR(20),@unit VARCHAR(16) SE

使用C#实现阿拉伯数字到大写中文的转换_C#教程

 先记下来,以备后用! /// <summary> /// 金额转为大写金额 /// </summary> public class MoneyConvertChinese { /// <summary> /// 金额转为大写金额 /// </summary> /// <param name="LowerMoney"></param> /// <returns></returns> publ

ASP.Net学习之常用SQL存储过程

asp.net|存储过程 在ASP.Net项目中使用存储过程,首先可以提高数据库的安全性,其次可以提高运行SQL代码运行的速度,在大型项目中一般是必不可少的.Visual Studio.Net为SQL的存储过程提供了强大的支持,您既可以通过visual studio.net来新建存储过程,也可以直接在Sql Server的查询分析器中运行,还可以通过企业管理器创建,使用起来也非常方便.大家一直都误认为SQL存储过程是一个比较"高深"的技术,其实掌握一般的语法是没有什么大问题的,而我们在

请问如何替换字符串中大写中文数字为阿拉伯数字?

问题描述 我有几个字符串,如 我有十块钱,你有二十三块钱,他有二元钱.我想转换成 "我有10块钱,你有23块钱,他有2元钱.",请问如何转换,也就是如何把字符串中大写中文数字转换成阿拉伯数字.大写中文数字可限制在一到九百九十九之间.谢谢! 解决方案 package test;import java.text.MessageFormat;import java.util.ArrayList;import java.util.HashMap;import java.util.LinkedH

DBA常用SQL语句

语句    自己总结的常用SQL语句,发现对自己工作帮助挺大的!   查看表空间的名称及大小: SQL>select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name;   查看表空间物理文件的名称及大小:

[SQL Server]管理常用SQL语句

server|语句 [SQL Server]管理常用SQL语句 1. 查看数据库的版本        select @@version 2. 查看数据库所在机器操作系统参数        exec master..xp_msver 3. 查看数据库启动的参数         sp_configure 4. 查看数据库启动时间         select convert(varchar(30),login_time,120) from master..sysprocesses where spi

Oracle 常用SQL函数

oracle|函数 时间:2005-02-18 Oracle的SQL函数分为单行函数和多行函数.单行函数只对单条记录有效,多行函数对多条记录有效. 单行函数包括,字符.数字.日期.转换和普通函数. 字符函数举例:• 全小写  LOWER('SQL Course')   sql course• 全大写 UPPER('SQL Course')     SQL COURSE •首字母大写 INITCAP('SQL Course')    Sql Course拼接 CONCAT('Good', 'Str

C#实现的【阿拉伯数字转换成中文大写金额】代码

大写|金额|中文|转换 以下C#代码实现了将阿拉伯数字转换成中文大写金额的功能,并Visual Studio.NET 2003 下调试基本通过(未经严格测试,希望各位发现错误后与作者联系fanz2000@sohu.com,或直接在csdn上回帖告知). 代码的主调函数为ConvertSum,它的参数是string类型的数字字符串.在ASP.NET中调用方式如下:Label1.Text=ConvertSum("数字字符串"); 其代码如下: //作者:fanz2000 //Email:f

SQL Server 常用SQL总结

  SQL Server 常用SQL总结 order by NAME collate Chinese_PRC_Stroke_CS_AS_KS_WS /*sqlserver分组不能以text,ntext,image类型的字段作为分组依据*/ --强制查询使用索引: select id from table_name with(index(索引名)) where num=@num --全文检索(name like '%abc%')(substring(cal_name ,1,3)='abc') se