1、在SQL service中的写法:

 --Function主体
CREATE FUNCTION [dbo].[FnMoneyStyle](@Number float,@strType char())
RETURNS VARCHAR()
AS
BEGIN
DECLARE @ReturnValue varchar()
SET @ReturnValue=
SET @Number=ISNULL(@Number,)
--千分
IF @strType = '' --千分 无小数点
SET @ReturnValue= left(convert(varchar,convert(money,@Number),),len(convert(varchar,convert(money,@Number),))-)
IF @strType = '' --千分 两位小数点
SET @ReturnValue= convert(varchar,convert(money,@Number),)
IF @strType = '' --千分 两位小数点 去掉.
SET @ReturnValue=REPLACE(convert(varchar,convert(money,@Number),),'.00', '')
--非千分
IF @strType = '' --四位小数
SET @ReturnValue= convert(varchar,convert(money,@Number),)
IF @strType = '' --去掉.
SET @ReturnValue=REPLACE(convert(varchar,convert(money,@Number)),'.00', '') RETURN @ReturnValue
END --Function测试结果:
SELECT dbo.FnMoneyStyle(300000.00,)--返回结果:,
SELECT dbo.FnMoneyStyle(300000.00,)--返回结果:,000.00
SELECT dbo.FnMoneyStyle(300000.00,)--返回结果:300000.0000
SELECT dbo.FnMoneyStyle(300000.00,)--返回结果:

2、在Oracle中的写法:

 --function主体:
create or replace function FnMoneyStyle
(
fNumber float,
strType varchar2
) return varchar2
as
ReturnValue varchar2():=;
begin --千分
IF strType = '' THEN --千分 无小数点
SELECT SUBSTR
(
TRIM(DECODE(fNumber,,'0.00',TO_CHAR(fNumber,'999,999,999,999,999.99')))
,
,LENGTH(TRIM(DECODE(fNumber,,'0.00',TO_CHAR(fNumber,'999,999,999,999,999.99'))))-
) INTO ReturnValue
FROM DUAL;
END IF; IF strType = '' THEN --千分 两位小数点
SELECT TRIM(DECODE(fNumber,,'0.00',TO_CHAR(fNumber,'999,999,999,999,999.99'))) INTO ReturnValue
FROM DUAL;
END IF; IF strType = '' THEN --千分 两位小数点 去掉.
SELECT REPLACE
(
TRIM(DECODE(fNumber,,'0.00',TO_CHAR(fNumber,'999,999,999,999,999.99')))
,'.00'
,''
) INTO ReturnValue
FROM DUAL;
END IF; --非千分
IF strType = '' THEN --四位小数
SELECT TRIM(DECODE(fNumber,,'0.0000',TO_CHAR(fNumber,'9999999999999999999999999.9999'))) INTO ReturnValue
FROM DUAL;
END IF; IF strType = '' THEN --去掉.
SELECT REPLACE
(
TRIM(DECODE(fNumber,,'0.00',TO_CHAR(fNumber,'9999999999999999999999999.99')))
,'.00'
,''
) INTO ReturnValue
FROM DUAL;
END IF;
dbms_output.put_line(ReturnValue);
return(ReturnValue);
end FnMoneyStyle; --function测试结果:
SELECT FnMoneyStyle(30000.123,'') FROM DUAL--返回结果:,
SELECT FnMoneyStyle(30000.123,'') FROM DUAL--返回结果:,000.12
SELECT FnMoneyStyle(30000.123,'') FROM DUAL--返回结果:30000.1230
SELECT FnMoneyStyle(30000.123,'') FROM DUAL--返回结果:30000.12
SELECT FnMoneyStyle(30000.123,'') FROM DUAL--返回结果:,000.12

在SQL service或Oracle中将数字转换成有千位符号的更多相关文章

  1. 在C#中将数字转换成中文

    上篇我们讲了在MSSQL中将数字转换成中文,这篇我们讲讲在C#中将数字转换成中文 下篇将讲一下如何将金额转换成中文金额,废话不多说,具体代码如下: /// <summary> /// 数字 ...

  2. c#中将字符串转换成带2位小数的浮点数

    今天遇到一个展示酒店价格的需求,觉得是要显示成“¥0.00”样式的,就做个小随笔,将字符串装换成带2位小数的浮点数 代码如下 "; string amount = string.Empty; ...

  3. Oracle中将小数转换成字符丢零.截取小数.除数为零解决法

    如下所示,前面少个0 SQL>select money from users where username ='LEI'; money --------- .3256 解决方法: SQL> ...

  4. sql语句将身份证号数字转换成特殊字符

    SELECT Tname , STUFF(Idcard,,,'*********') as Idcard,Completion from demo

  5. 在MSSQL中将数字转换成中文

    具体代码如下: CREATE FUNCTION [dbo].[fn_NumberToChinese] (@number INT) ) AS BEGIN ); ); ); SET @res = ''; ...

  6. javascript中将整数添加千位符号

    如果num是整数的话,将其转换成带千位符号的字符串: Number(num).toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1' +  ','); 另 ...

  7. 比较java与c语言中数字转换成字符的不同

    java java中将数字转换成字符非常方便,只要用一个"+"然后在跟一个空格行了.比如,你输入一个122 ,就会变成"122 ". import java.u ...

  8. 在Ajax中将数组转换成字符串(0517-am)

    一.如何在Ajax中将数组转换成字符串 1. 主页面; <head> <meta http-equiv="Content-Type" content=" ...

  9. ASP.Net中实现上传过程中将文本文件转换成PDF的方法

    iTextSharp是一个常用的PDF库,我们可以使用它来创建.修改PDF文件或对PDF文件进行一些其他额外的操作.本文讲述了如何在上传过程中将文本文件转换成PDF的方法. 基本工作 在开始之前,我们 ...

随机推荐

  1. Python unittest第一篇:基础入门+命令行编译

    unittest单元测试框架最初受JUnit启发,与其他语言的主要单元测试框架具有相似的风格. 它支持测试自动化,支持开启或关闭某个测试,支持结合测试.另外它可以生成各个单元测试的报告.为了实现以上功 ...

  2. ubuntu 配置 samba服务器

    samba配置的安装: sudo apt-get install samba smbfs smbclient 二. 创建共享目录: mkdir /home/komy/sharesudu chmod 7 ...

  3. 030-ftputils工具栏模板

    模板一: package cn.e3mall.common.utils; import java.io.File; import java.io.FileInputStream; import jav ...

  4. Linux 命令 su 和 sudo 比较

    su : 可以用来切换到任何用户,但是要求输入目标用户的密码 比如:su - su - root (等价 su -) su - user su root 与 su - root 的区别在于,后者不切换 ...

  5. python-Event事件处理进程同步

    #!/usr/bin/python from multiprocessing import Process,Event import os,time def A(e): print "blo ...

  6. graphql pass arg

    ; ; var xhr = new XMLHttpRequest(); xhr.responseType = 'json'; xhr.open("POST", "http ...

  7. js Array vs [],以及是否为空的判断

    两者基本相同,唯一不同点在于初始化: var a = [], // these are the same b = new Array(), // a and b are arrays with len ...

  8. golang实现kafka的消息推送

    Kafka的安装与启动 kafka中涉及的名词 消息记录:由一个key,一个value和一个时间戳构成,消息最终存储在主题下的分区中,记录在生产中称为生产者记录,在消费者中称为消费记录.Kafka集群 ...

  9. 使用go实现的lisp

    去年10月份的时候,就有这个打算了. 也是在上个月左右,抽空弄出来了个go语言实现的lisp. 当然,不能和common lisp比,函数的数量是远远不如的,也不能自己定义类型/类,同时宏系统也非常简 ...

  10. Visual Studio 2017 远程调试(Remote Debugger)应用

    I.远程调试情景 项目部署在远程服务器或非本地环境中,需要 处理应用中遇到的一些错误时 (不能直接附加进程或F5调试应用). II. 远程调试准备 1.远程服务器--操作系统和硬件要求 MSDN 操作 ...