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. 并发编程>>四种实现方式(三)

    概述 1.继承Thread 2.实现Runable接口 3.实现Callable接口通过FutureTask包装器来创建Thread线程 4.通过Executor框架实现多线程的结构化,即线程池实现. ...

  2. 详细解读KMP模式匹配算法

    转载请注明出处:http://blog.csdn.net/fightlei/article/details/52712461 首先我们需要了解什么是模式匹配? 子串定位运算又称为模式匹配(Patter ...

  3. Spark累加器

    spark累计器 因为task的执行是在多个Executor中执行,所以会出现计算总量的时候,每个Executor只会计算部分数据,不能全局计算. 累计器是可以实现在全局中进行累加计数. 注意: 累加 ...

  4. (转)Python数学函数

    原文:https://www.cnblogs.com/lpl1/p/7793645.html PYTHON-基础-内置函数小结----------http://www.wklken.me/posts/ ...

  5. Android多媒体之照相机

    1.调用系统的照相机 public void click(View view) { // 激活系统的照相机拍照 Intent intent = new Intent("android.med ...

  6. Scanner类中的nextToken()方法解读

    下面看一下nextToken()方法的源码实现. 1.Java中的控制字符 case ' ': // (Spec 3.6) case '\t': // (Spec 3.6) case FF: // ( ...

  7. R语言数据重塑cbind+rbind+merge+ melt+cast

    R语言中的数据重塑是关于变化的数据分为行和列的方式.大多数R地数据处理的时候是通过将输入的数据作为一个数据帧进行.这是很容易提取一个数据帧的行和列数据,但在某些情况,当我们需要的数据帧的格式是不同的来 ...

  8. 请别再拿“String s = new String("xyz");创建了多少个String实例”来面试了吧---转

    http://www.iteye.com/topic/774673 羞愧呀,不知道多少人干过,我也干过,面壁去! 这帖是用来回复高级语言虚拟机圈子里的一个问题,一道Java笔试题的. 本来因为见得太多 ...

  9. 724_Find-Pivot-Index

    目录 724_Find-Pivot-Index Description Solution Java solution Python solution 724_Find-Pivot-Index Desc ...

  10. SearchRequestBuilder常用方法说明

    SearchRequestBuilder常用方法说明 (1) setIndices(String... indices):上文中描述过,参数可为一个或多个字符串,表示要进行检索的index: (2) ...