用SQL将数字转换为中文数字
IF OBJECT_ID('fn_GetChnNum') IS NOT NULL
BEGIN
DROP FUNCTION dbo.fn_GetChnNum;
END;
GO
CREATE FUNCTION fn_GetChnNum ( @Number AS BIGINT )
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @ChnNum VARCHAR(100);
IF LEN(@Number) = 1
BEGIN
SET @ChnNum = SUBSTRING('零一二三四五六七八九', @Number + 1, 1);
END;
ELSE
BEGIN
DECLARE @Len INTEGER;
DECLARE @strNum AS VARCHAR(100);
DECLARE @i AS INTEGER;
DECLARE @NumWs AS INTEGER;
DECLARE @Unit AS VARCHAR(10);
SET @ChnNum = '';
SET @strNum = CAST(@Number AS VARCHAR(100));
SELECT @Len = LEN(@strNum);
SET @i = 1;
WHILE @i <= @Len
BEGIN
SET @Unit = '';
SET @NumWs = @Len + 1 - @i;
IF @NumWs > 1
BEGIN
SET @Unit = CASE WHEN @NumWs % 4 = 0 THEN '千'
WHEN @NumWs % 2 = 0 THEN '十'
WHEN @NumWs % 8 = 1 THEN '亿'
WHEN @NumWs % 4 = 1 THEN '万'
WHEN @NumWs % 2 = 1 THEN '百'
ELSE ''
END;
END;
SET @ChnNum = @ChnNum
+ dbo.fn_GetChnNum(SUBSTRING(@strNum, @i, 1));
SET @ChnNum = @ChnNum + @Unit;
SET @i = @i + 1;
END;
IF CHARINDEX('零元', @ChnNum) <> 0
SET @ChnNum = REPLACE(@ChnNum, '零元', '元');
IF CHARINDEX('零万', @ChnNum) <> 0
SET @ChnNum = REPLACE(@ChnNum, '零万', '万');
IF CHARINDEX('零亿', @ChnNum) <> 0
SET @ChnNum = REPLACE(@ChnNum, '零亿', '亿');
IF CHARINDEX('零百', @ChnNum) <> 0
SET @ChnNum = REPLACE(@ChnNum, '零百', '零');
IF CHARINDEX('零千', @ChnNum) <> 0
SET @ChnNum = REPLACE(@ChnNum, '零千', '零');
RETURN @ChnNum;
END;
RETURN @ChnNum;
END;
GO
--测试
SELECT dbo.fn_GetChnNum(203423124);

用SQL将数字转换为中文数字的更多相关文章
- C# 阿拉伯数字转换为中文数字/中文数字转换为阿拉伯数字
项目中经常会格式化数据,转换数字的使用情况比较多,记录一下数字转换的方法! 如果需要转换为繁体中文,将数组里的汉字换成繁体中文即可. 1.阿拉伯数字转换为中文数字 /// <summary> ...
- JS将数字转换为中文
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JAVA处理数字与中文数字互转(最大处理数字不超过万兆即:9999999999999999.9999)
package practice; import java.util.Arrays; /** * 数字与中文数字互转(最大处理数字不超过万兆即:9999999999999999.9999) * @au ...
- Javascript中将数字转换为中文的方法
//js实现将数字1234转化为汉字字符串(一千二百三十四)(或大写汉字壹仟贰佰叁拾肆): /*阿拉伯数字转中文数字 中文数字的特点: 每个计数数字都跟着一个权位,权位有:十.百.千.万.亿. 以“万 ...
- 使用Java将阿拉伯数字转换为中文数字(适配小数转换)
Java数字转换工具类 简介 该工具类可以将整数.小数.负数转换为中文的数字,如: 0 --> 零 1 --> 一 2.1 --> 二点一 -2.1 --> 负二点一 具体代码 ...
- c++ 实现将数字转换为中文数字输出
实现如下函数: void printInChinese(int num); 这个函数输入一个小于100000000(一亿)的正整数,并在屏幕上打印这个数字的中文写法. 例如: 17 -> 一十七 ...
- sql 自定义函数返回中文,数字,英文
--提取数字IF OBJECT_ID('DBO.GET_NUMBER2') IS NOT NULLDROP FUNCTION DBO.GET_NUMBER2GOCREATE FUNCTION DBO. ...
- PHP金额工具类之将阿利伯数字转换为大写中文数字
1.将阿拉伯数字转换为中文大写数字 <?php namespace core\components; class PriceHelper extends \yii\base\Component{ ...
- javascript 中文数字阿拉伯数字转换类 Nzh
之前工作中碰到了数字转中文的情景,网上找的现成方法或多或少不合我的口味,最后还是自已写了一个. 现在整理了一下,补充了繁体,自定义字符,以及反函数(中文数字转阿拉伯数字) 现在发布出来,希望能合大家的 ...
随机推荐
- Bootstrap中的Glyphicon 字体图标
在Bootstrap框架中也为大家提供了近200个不同的icon图片,而这些图标都是使用CSS3的@font-face属性配合字体来实现的icon效果. 1 <!DOCTYPE html> ...
- Java中的String、StringBuffer和StringBuilder的区别
类型 是否可变 线程安全 能否频繁修改 String 不可变 安全 否 StringBuffer 可变 安全 能 StringBuilder 可变 不安全 能 1.可变与 ...
- sql运算符优先级及逻辑处理顺序--查询sql执行顺序
sql逻辑处理顺序 --开启和关闭查询 --SET STATISTICS TIME ON---------------------------------------------请先来看看SET ST ...
- aerospike(2)-java client
地址:https://www.aerospike.com/download/client/java/4.3.1/ 例子顺序:https://github.com/aerospike/aerospike ...
- CheckStyle unable to read from stream
“我在对比了其他正确的ChechStyle文件之后,发现这个无法导入的文件的编码和正确文件的编码不一样,我的xml文档编码为ANSI,而导入正确的ChechStyle文件为UTF-8编码,在我将自己的 ...
- android studio NDK配置
向您的项目添加 C 和 C++ 代码 本文内容 下载 NDK 和构建工具 创建支持 C/C++ 的新项目 构建和运行示例应用 向现有项目添加 C/C++ 代码 创建新的原生源文件 创建 CMake 构 ...
- virtualenv(for python)
完整: http://docs.jinkan.org/docs/flask/installation.html#installation virtualenv 你很可能想在开发中用上 virtua ...
- inventor安装失败怎样卸载安装inventor 2015?
AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...
- 理解 Linux backlog/somaxconn 内核参数
https://jaminzhang.github.io/linux/understand-Linux-backlog-and-somaxconn-kernel-arguments/ 各参数的含义:h ...
- .NET控制台程序监听程序退出
There are mainly 2 types of Win32 applications, console application and window application. They hav ...