SQL 数字转为中文大写
USE [SPECIAL_BLD]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[get_upper]
(
@num numeric(18,5)
)
RETURNS VARCHAR(500)
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
GO
最新文章
- C# Winform 通过FlowLayoutPanel及自定义的编辑控件,实现快速构建C/S版的编辑表单页面
- [转]oracle学习入门系列之五内存结构、数据库结构、进程
- C#异步:实现一个最简单的异步
- switch… case 语句的用法(一)
- 【转】dip,px,pt,sp 的区别
- asp:时间的显示
- [译]当你在浏览器输入url后发生了什么
- UIWebView取消长按放大(用于长按识别二维码)
- NSString 使用小结
- 访问Google神器,魔高一尺,道高一丈!
- js跨域问题解决方案
- maven 编译出错Fatal error compiling: 无效的目标发行版: 1.8 ->; [Help 1] 解决办法
- Jquery对表格的一些简单应用 查询&;即时匹配&;点击高亮等
- Python和Java编程题(四)
- [原]关于在Python和C#之间消息传递的问题
- VS Release模式调试
- Android设备管理器漏洞(转)
- Kafka 如何读取指定topic中的offset -------------用来验证分区是不是均衡!!!(__consumer_offsets)(已验证!)
- php 的 PHPExcel1.8.0 使用教程
- iOS开源项目:PullToRefresh