--功能:  用于将小写的数值翻译成大写的字符串(支持到分,即小数点后两位)      
--入口参数:@decNum------数字型变量   
--返回:字符串   
--举例:select dbo.fn_ChnMoney(623.88)   
--    结果为“陆佰贰拾叁元捌角捌分”    
--如果小数点毒打两位结果是四舍五入的
--select dbo.[fn_ChnMoney_New](623.88666666)

-- Drop FUNCTION [dbo].[fn_ChnMoney_New]
CREATE  FUNCTION [dbo].[fn_ChnMoney_New](@decNum decimal(18,2)) 
RETURNS varchar(200) 
AS 
BEGIN 
 DECLARE @chvNum varchar(200) 
 DECLARE @chvMoney varchar(200) 
 DECLARE @chvTemp varchar(200) 
 DECLARE @intIntLen int 
 DECLARE @intI int 
 DECLARE @chvTempI varchar(200) 
 DECLARE @chvReturn varchar(200) 
 DECLARE @sFsFlag int 
 
 SET @sFsFlag = 0 
 
 IF @decNum=0  
  SET @chvReturn = '零' 
        Else 
 BEGIN 
  
  IF @decNum<0 
  BEGIN 
   SET @sFsFlag = 1 
   SET @decNum = ABS(@decNum) 
  END 
 
  SET @chvTemp=convert(varchar(200),Round(@decNum*100,0)) 
  IF charindex('.',@chvTemp,1)>0 
   SET @chvNum=left(@chvTemp,charindex('.',@chvTemp,1)-1) 
  ELSE 
   SET @chvNum=@chvTemp 
   
   
  SET @intIntLen=len(@chvNum) 
   
  SET @chvMoney='' 
  Set @chvReturn = '' 
  SET @intI=1 
   
  WHILE @intI <= @intIntLen 
  BEGIN 
   SET @chvTempI = substring(@chvNum,@intIntLen-@intI+1,1) 
   SET @chvMoney = substring('零壹贰叁肆伍陆柒捌玖',convert(int,@chvTempI)+1,1) + substring('分角元拾佰仟万拾佰仟亿拾佰仟兆拾佰仟京拾佰仟',(@intI-1)+1,1) 
   SET @intI = @intI + 1    
    
   SET @chvReturn = @chvMoney + @chvReturn 
  END 
 END 
 
 SET @chvReturn=Replace(@chvReturn,'零仟','零') 
 SET @chvReturn=Replace(@chvReturn,'零佰','零') 
 SET @chvReturn=Replace(@chvReturn,'零拾','零') 
 
 while charindex('零零',@chvReturn,1)>0 
  SET @chvReturn=Replace(@chvReturn,'零零','零') 
 -----增加对京的处理 liuk 
 SET @chvReturn=Replace(@chvReturn,'零京','京') 
  
 SET @chvReturn=Replace(@chvReturn,'零兆','兆') 
 SET @chvReturn=Replace(@chvReturn,'零亿','亿') 
 SET @chvReturn=Replace(@chvReturn,'零万','万') 
 
    -----增加对连体单位的处理 liuk 
    SET @chvReturn=Replace(@chvReturn,'京兆','京') 
 SET @chvReturn=Replace(@chvReturn,'京亿','京') 
 SET @chvReturn=Replace(@chvReturn,'京万','京') 
    SET @chvReturn=Replace(@chvReturn,'兆亿','兆') 
 SET @chvReturn=Replace(@chvReturn,'兆万','兆') 
 SET @chvReturn=Replace(@chvReturn,'亿万','亿') 
 
 
 SET @chvReturn=Replace(@chvReturn,'零元','元') 
 SET @chvReturn=Replace(@chvReturn,'零角零分','整') 
 SET @chvReturn=Replace(@chvReturn,'零角','零') 
 SET @chvReturn=Replace(@chvReturn,'零分','整') 
 SET @chvReturn=LTRIM(RTRIM(@chvReturn)) 
  
 IF @sFsFlag = 1 
  SET @chvReturn = '负' + Ltrim(@chvReturn) 
 
 RETURN @chvReturn 
 
END

SQL函数:用于将小写的数值翻译成大写的字符串的更多相关文章

  1. input输入框输入小写字母自动转换成大写字母

    input输入框输入小写字母自动转换成大写字母有两种方法 1.用js onkeyup事件,即时把字母转换为大写字母: html里input加上 <input type="text&qu ...

  2. C#小写数字金额转换成大写人民币金额的算法

    C#小写数字金额转换成大写人民币金额的算法 第一种方法: using System.Text.RegularExpressions;//首先引入命名空间 private string DaXie(st ...

  3. zip函数用于对列表对应元素打包成元组

    zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表. 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以 ...

  4. js-input框中写入的小写小写字母全部转换成大写字母的js代码

    <input type="text" id="blinitials" name="blinitials"  onkeyup=" ...

  5. 【东软实训】SQL函数

    SQL函数 SQL是用于访问和处理数据库的标准的计算机语言,我们所使用的的是Oracle SQL 一个数据库通常包含一个或多个表,每个表有一个名字表示,下图即为一个名为“emp”的表,接下来的操作都将 ...

  6. SQL——函数

    演示c_grade表 一.AVG() AVG()函数用于返回数值列的平均值 例: SELECT AVG(score) FROM c_grade; 运行结果: 通过运行结果可以看到,score字段为Nu ...

  7. 把一个string串的所有小写字母转成大写字母的例子来看看看全局函数的使用

    今天写了一个小例子,把字符串里面的所有小写字母全部转换成大写字母http://blog.csdn.net/yasaken/article/details/7303903 1 #include &quo ...

  8. SQL函数:小写金额转换成大写

    /********************************************************作者:版本:1.0创建时间:20020227修改时间:功能:小写金额转换成大写参数:n ...

  9. Oracle数据库常用SQL函数

    1.SQL函数的概念: 函数一般是在数据上执行的,它给数据的转换和处理提供了方便.只是将取出的数据进行处理,不会改变数据库中的值.(类似于java中的方法但函数只是将数据库中的数据取出(复制)到函数中 ...

随机推荐

  1. jQuery.noConflict()防冲突机制

    许多JS库都非常喜欢使用$作为函数.变量.有时候,由于页面复杂的历史问题,或者为了实现特定的功能,我们不得不在页面中引入多个JS库.今儿个来学习学习jQuery库是怎么解决$冲突问题.(jQuery- ...

  2. JS 操作Dom节点之样式

    为了提高用户体验,我们经常会动态修改Dom节点的样式,各种浏览器差异比较大,我们如何应对?不断尝试,不断总结~! 1. style.getComputedStyle.currentStyle 内嵌样式 ...

  3. C++中的dll

    创建动态链接库 (DLL) 项目 在菜单栏上,依次选择“文件”.“新建”.“项目”. 在“新建项目”对话框的左窗格中,依次展开“已安装”.“模板”.“Visual C++”,然后选择“Win32”. ...

  4. ASP.Net string 类的扩展方法 [转]

    string 类的扩展方法列表(基本相同于 IEnumerable<T> 接口的成员列表): Aggregate<>     //累加 All<>        / ...

  5. Yii2——MYSQL操作

    先创建连接对象 $connection = new \yii\db\Connection([ 'dsn' => $dsn, 'username' => $username, 'passwo ...

  6. java 属性

    //非静态类 不能定义静态属性/方法/静态类, 可以定义静态常量属性. public class A{ public class B{ public static String  _str; //❌, ...

  7. STM8S学习笔记-时钟控制2

    今天把时钟系统的最后部分,时钟安全系统(CSS)和时钟输出功能(CCO),做一个简答的说明. 1.时钟安全系统(以下简称CSS) CSS功能很简单,就是监控HSE是否实效(如果系统使用HSE作为主时钟 ...

  8. 将Map转换为Java 对象

    public class MapUtil { public static Object convert2Object(Class clazz,Map<String,Object[]> ma ...

  9. 遇到个鬼,在WIN08的DELL R710上安装CENTOS 63,无法格式化以前的硬盘分区,安装无法进行下去。

    遇到个鬼,在WIN08的DELL R710上安装CENTOS 63,无法格式化以前的硬盘分区,安装无法进行下去. 我下面类似的办法来解决,就是---进行在安装过程中,用快捷键:Ctrl+Alt+F2到 ...

  10. [C#错误] 未找到类型或命名空间名称" " (是否缺少 using 指令或程序集引用?)

    现象:编译项目时提示未找到类型或命名空间名称" " (是否缺少 using 指令或程序集引用?)解决方法:如果是未找到类型,检查是否引用了类型所在的命名空间,使用using指令.如 ...