首页 > 数据库 >sql server 数字转人民币大写

sql server 数字转人民币大写

时间:2023-02-11 14:56:58浏览次数:35  
标签:SET 14 大写 server SUBSTRING num str sql data

 1 alter FUNCTION dbo.NumToRMB(@num numeric(14, 5))
 2     RETURNS varchar(100)
 3     WITH ENCRYPTION
 4 AS
 5 BEGIN
 6     DECLARE @n_data VARCHAR(20),@c_data VARCHAR(100),@n_str VARCHAR(10),@i int
 7     SET @n_data = RIGHT(SPACE(14) + CAST(CAST(ABS(@num * 100) AS bigint) AS varchar(20)), 14)
 8     SET @c_data = ''
 9     SET @i = 1
10     WHILE @i <= 14
11         BEGIN
12             SET @n_str = SUBSTRING(@n_data, @i, 1)
13             IF @n_str <> ' '
14                 BEGIN
15                     IF not ((SUBSTRING(@n_data, @i, 2) = '00') or
16                             ((@n_str = '0') and ((@i = 4) or (@i = 8) or (@i = 12) or (@i = 14))))
17                         SET @c_data = @c_data + SUBSTRING('零壹贰叁肆伍陆柒捌玖', CAST(@n_str AS int) + 1, 1)
18                     IF not ((@n_str = '0') and (@i <> 4) and (@i <> 8) and (@i <> 12))
19                         SET @c_data = @c_data + SUBSTRING('仟佰拾亿仟佰拾万仟佰拾圆角分', @i, 1)
20                     IF SUBSTRING(@c_data, LEN(@c_data) - 1, 2) = '亿万'
21                         SET @c_data = SUBSTRING(@c_data, 1, LEN(@c_data) - 1)
22                 END
23             SET @i = @i + 1
24         END
25     IF @num < 0
26         SET @c_data = '(负数)' + @c_data
27     IF @num = 0
28         SET @c_data = '零圆'
29     IF @n_str = '0'
30         SET @c_data = @c_data + '整'
31     RETURN (@c_data)
32 END
33 
34 -- SELECT dbo.NumToRMB(1200)
View Code

 

标签:SET,14,大写,server,SUBSTRING,num,str,sql,data
From: https://www.cnblogs.com/iHey/p/17111651.html

相关文章

  • MySQL 事务和MVCC原理
        事务定义事务是一组操作,这些操作可以是一条SQL语句、一组SQL语句或整个程序。      什么时候会用到事务呢?当多张强一致关联的表,需要进行数......
  • 网易一面:select分页要调优100倍,说说你的思路?(内含Mysql的36军规)
    文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面......
  • sqlserver sp_executesql和 EXEC 区别和用法
    sqlserversp_executesql和 EXEC区别和用法MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接......
  • RPM 安装 Mysql8.0
    一、环境Centos Stream8 ---Linuxversion4.18.0-326.el8.x86_64([email protected])(gccversion8.5.020210514(RedHat8.5.0-3)(GCC))......
  • 【踩坑日记】nginx server_name配置多域名的坑
    各位技术大佬,大家好,我是练习时长两年半的代码练习生,Max,喜欢技术,后端和架构。问题介绍项目配置了多个域名,如下,php代码中有获取$_SERVER['SERVER_NAME']的值。server......
  • mysql为何使用B+树作为索引
    讲mysqlinnodb使用B+树作为索引的原因:https://juejin.cn/post/7081065180301361183分析mysql数据特点:存储在磁盘,为了提升性能,需要尽量减少io操作分析所有数据结构:线性......
  • 测试版sql语句
    mysqlmysql-u账号-pshowdatabases;use库名;showtables;createdatabase库名;defaultcharactersetutf8mb4;defaultcollatesetutf8mb4_bin;createta......
  • 开发版sql语句
    mysql基础语法#建库createdatabasemydbcharactersetutr-8;createdatabasemydbcharactersetutr-8;#修改字符集alterdatabasemydbcharactersetutf8;......
  • mysql-proxy 读写分离,不支持mysql5.7的client客户端登录
    安装前,先有mysql主从下载proxy,https://downloads.mysql.com/archives/proxy/#downloadswgethttps://downloads.mysql.com/archives/get/p/21/file/mysql-proxy-0.8.5-......
  • 饱和度 - 监控MySQL的InnoDB Buffer pool 相关的指标
    1. 对于MySQL而言,用什么指标来反映资源有多“满”呢?首先我们要关注MySQL所在机器的CPU、内存、硬盘I/O、网络流量这些基础指标2. MySQL本身也有一些指标来反映饱......