SQL标量值函数:小写金额转大写
我们日常开发业务系统中,作为统计报表中,特别是财务报表,显示中文金额经常遇到。
转换大小写的方法有很多,以下是从数据库函数方面解决这一问题.
效果如图:
调用:SELECT dbo.[Fn_ConvertRMB](192.4)
具体函数如下:
-- =============================================
-- 调用:SELECT dbo.[Fn_ConvertRMB](192.4)
-- Create date: 2015-01-06
-- Description: 返回中文金额
-- =============================================
CREATE FUNCTION [dbo].[Fn_ConvertRMB] (@num NUMERIC(14, 2))
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @n_data VARCHAR(20) ,
@c_data VARCHAR(100) ,
@n_str VARCHAR(10) ,
@i INT
SET @n_data=RIGHT(SPACE(14)+CAST(CAST(ABS(@num*100) AS BIGINT) AS VARCHAR(20)), 14)
SET @c_data=''
SET @i=1
WHILE @i<=14
BEGIN
SET @n_str=SUBSTRING(@n_data, @i, 1)
IF @n_str<>' '
BEGIN
IF NOT ((SUBSTRING(@n_data, @i, 2)='00')
OR ((@n_str='0')
AND ((@i=4)
OR (@i=8)
OR (@i=12)
OR (@i=14))))
SET @c_data=@c_data+SUBSTRING('零壹贰叁肆伍陆柒捌玖', CAST(@n_str AS INT)+1, 1)
IF NOT ((@n_str='0')
AND (@i<>4)
AND (@i<>8)
AND (@i<>12))
SET @c_data=@c_data+SUBSTRING('仟佰拾亿仟佰拾万仟佰拾圆角分', @i, 1)
IF SUBSTRING(@c_data, LEN(@c_data)-1, 2)='亿万'
SET @c_data=SUBSTRING(@c_data, 1, LEN(@c_data)-1)
END
SET @i=@i+1
END
IF @num<0
SET @c_data='(负数)'+@c_data
IF @num=0
SET @c_data='零圆'
IF @n_str='0'
SET @c_data=@c_data+'整'
RETURN(@c_data)
END
如果朋友们觉得以后可能会用到的话,欢迎转载,当然也可以推荐一下,谢谢。
PS:此博文是利用Windows Live Writer 2012编写,格式效果可能不太好。
SQL标量值函数:小写金额转大写的更多相关文章
- 常用Sql 标量值函数
1.汉字拼音首字母 /****** Object: UserDefinedFunction [dbo].[fnGetHzPY] Script Date: 08/16/2018 09:04:47 Des ...
- SQL标量值函数:返回汉字拼音首拼
今天遇到一个需求,客户要求在系统客户端选择客户的时候,可以用拼音首拼去快速过滤选择,此时我们在客户表里面加多一个拼音首拼字段CustPY来记录,字段加好了,我们要把所有客户名称的拼音简拼都更新到Cus ...
- sql标量值函数,将汉字转化为拼音,无音标
USE [db_Test]GO SET ANSI_NULLS ONGO SET QUOTED_IDENTIFIER ONGO create function [dbo].[fn_GetPinyin]( ...
- SQL表值函数和标量值函数的区别
SQL表值函数和标量值函数的区别 写sql存储过程经常需要调用一些函数来使处理过程更加合理,也可以使函数复用性更强,不过在写sql函数的时候可能会发现,有些函数是在表值函数下写的有些是在标量值下写的, ...
- sql 表值函数与标量值函数
写sql存储过程经常需要调用一些函数来使处理过程更加合理,也可以使函数复用性更强,不过在写sql函数的时候可能会发现,有些函数是在表值函数下写的有些是在标量值下写的,区别是表值函数只能返回一个表,标量 ...
- sql server 中的表值函数和标量值函数
顾名思义:表值函数返回的是表,而标量值函数可以返回基类型 一.表值函数 用户定义表值函数返回 table 数据类型.对于内联表值函数,没有函数主体:表是单个 SELECT 语句的结果集. 以下示例 ...
- sql中的表值函数与标量值函数区别与用法
通俗来讲: 听名字就知道区别了 表值函数返回的是一张表结果,就和一个select查询语句一样,只不过里面带入了参数或者很复杂:标量值函数返回的只是一个值 一 .表值函数又分为内联函数与多语句函数 (1 ...
- sqlserver中的表值函数和标量值函数
顾名思义:表值函数返回的是表,而标量值函数可以返回基类型 一.表值函数 用户定义表值函数返回 table 数据类型.对于内联表值函数,没有函数主体:表是单个 SELECT 语句的结果集. 以下示例创建 ...
- sqlserver 表值函数与标量值函数
除了在我们常用的程序开发中要用到函数外,在sql语句中也常用到函数,不论哪种,思想都没有变,都是为了封装,可复用. 创建的方法和整体结构都大体相同,都少不了函数名,函数的形参,返回值等这些. 一.表值 ...
随机推荐
- java获取调用此方法的上面的方法名、类
StackTraceElement[] stacks = (new Throwable()).getStackTrace(); for (StackTraceElement stack : stack ...
- mysql日志总结
1.mysql慢查询设置 log-slow-queries=/alidata/mysql-log/mysql-slow.loglong_query_time = 1log-queries-not-us ...
- python循环切片
x = [0,99, 'a', 1, 2, 'b',5, 3, 0,'a' ,1, 8, 5,'b',5,9,5] b=[] c=[] d=[] for i in range(len(x)): if ...
- python3反射解析
python反射解析 一. 简介 python中的反射功能是由以下四个内置函数提供:hasattr.getattr.setattr.delattr,改四个函数分别用于对对象内部执行:检查是否含有某 ...
- LSM Tree 学习笔记——MemTable通常用 SkipList 来实现
最近发现很多数据库都使用了 LSM Tree 的存储模型,包括 LevelDB,HBase,Google BigTable,Cassandra,InfluxDB 等.之前还没有留意这么设计的原因,最近 ...
- vue2.0使用Sortable.js实现的拖拽功能
简介 在使用vue1.x之前的版本的时候,页面中的拖拽功能,我在项目中是直接用的jQuery ui中的sortable.js,只是在拖拽完成后,在update的回调函数中又重新排序了存放数据的数组.但 ...
- jmeter--简单使用
1.启动jmeter 2.创建线程组 2.点击线程组,选择添加,选择sampler(采样器),选择http请求 3.在添加的请求页面中,填写服务器名称或IP,端口,路径,请求的方法 4.添加请求的参数 ...
- UI层自动化测试介绍
UI指的是用户可以用肉眼可以看到的页面. UI层自动化测试的原理.不论是web端还是移动端,原理都是一样的,就是基于页面元素的识别和定位来进行模拟用户行为. 首先识别到某个元素,比如一个按钮,然后定义 ...
- BEC listen and translation exercise 47
Site One was unpopular because of traffic and parking problems.场地一由于交通和停车问题而不受欢迎. The bombs killed a ...
- BEC listen and translation exercise 45
So the Counselling Services we offer deal with any problems arising from your studies or in your lif ...
