oracle to_char函数中fmt用法简记

技术标签: oracle

       今天看到一个这样的sql :

      

select ccode,
       times,
       pt,
       to_char(last_value(decode(pt, 0, null, pt) ignore nulls)
               over(partition by ccode order by times),
               'fm90.09') new_pt
 from tmp_t;

    对to_char(value,'fm90.09')里面的fm90.09很陌生,虽然可以猜出是格式化用的,但是里面的0,9代表什么不知道

 

    to_char用法:TO_CHAR ( n [, fmt [, 'nlsparam']] ) 

   官方文档链接:http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm,里面有详细的介绍. 

 

    下面我要说的是to_char fm90.09代表什么,参考了博文http://www.cnblogs.com/liubiqu/archive/2008/01/17/1042403.html。 

    

    总结如下

     1,有9的地方如果有数字就显示如果没有数字就不显示,有0的地方在没有数字的时候也会有0来占位

    

select to_char(9999.09556,'fm99999.0900'),to_char(9999.09556,'fm00099.0900') from dual

   结果为:

  

  

    2,截取小数的时候是四舍五入

select to_char(90.99,'fm999.0')保留一位小数,to_char(90.99,'fm999.00')保留2位小数 from dual

    结果为:

   

 

    3,如果用fm9.99 整数仍然会显示.,如果不需要需要替换

 

select to_char(9,'fm99.99'),regexp_replace(to_char(9,'fm99.99'), '\.$', '') from dual

   

    

     4,fm中整数部分需大于等于值的整数部分长度

select to_char(99999.09, 'fm9.09'),
       to_char(99999.09, 'fm99.09'),
       to_char(99999.09, 'fm999.09'),
       to_char(99999.09, 'fm9999.09'),
       to_char(99999.09, 'fm99999.00')
  from dual

   结果为:

 

  

  

select to_char(99999.09, 'fm0.09'),
       to_char(99999.09, 'fm00.09'),
       to_char(99999.09, 'fm000.09'),
       to_char(99999.09, 'fm0000.09'),
       to_char(99999.09, 'fm00000.00')
  from dual

   结果为:

 

   综合例子为

with tmp_t as(
select 1 as v_id,0.02 as v_value from dual union all
select 2,10.02 from dual union all
select 3,0.054 from dual union all
select 4,20.01 from dual union all
select 5,-21.006 from dual union all
select 6,-1 from dual union all
select 7,-2.004 from dual union all
select 8,20.046 from dual)
select v_id,
       v_value,
       to_char(v_value)v_1,
       to_char(v_value, 'fm90.09')v_2,
       regexp_replace(to_char(v_value, 'fm90.9'), '\.$', '') v_3,
       regexp_replace(to_char(v_value, 'fm90.09'), '\.$', '') v_4,
       regexp_replace(to_char(v_value, 'fm90.09'), '\.0*$', '') v_5
  from tmp_t

   结果为:

  

 

    如有错误,欢迎提出,谢谢

    全文完

 

    

 

来源:网络


智能推荐

oracle 函数decode用法

  DECODE含义 decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值) 这个是decode的表达式,具体的含义解释为: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件=值n THEN RETURN(翻译值n) ELSE RETURN(缺省值) EN...

关于Oracle to_date() 与 to_char() 日期和字符串转换及IW,WW 周别显示

to_date("要转换的字符串","转换的格式")   两个参数的格式必须匹配,否则会报错。 即按照第二个参数的格式解释第一个参数。 to_char(日期,"转换格式" ) 即把给定的日期按照“转换格式”转换。 转换的格式: 表示year的:y  表示年的最后一位 yy 表示年的最后...

Oracle中rownum_函数用法

对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,而且rownum不能以任何表的名称作为前缀。 (1) rownum 对于某值的查询条件 Oracle中的rownum的是在取数据的时候产生的序号,所以想对指定排序的数据去指定的rowmun行数据就必须注意了。必须对排序使用子查询 如果想查询r...

webpack常见面试题

目录 什么是bundle,什么是chunk,什么是module 说几个常见的loader 说几个常见的plugin loader与plugin有什么区别 是否写过loader和plugin?描述一下编写loader或plugin的思路? webpack的构建流程是什么?从读取配置到输出文件这个过程尽量说全. 如何提高webpack的构建速度 如何利用webpack来优化前端性能 使用webpack...

CNN经典模型——VGGNet

  VGGNet出自论文《Very Deep Convolutional Networks For Large-Scale Image Recognition》。   VGG模型是2014年ILSVRC竞赛的第二名,第一名是GoogLeNet。但是VGG模型在多个迁移学习任务中的表现要优于googLeNet。而且,从图像中提取CNN特征,VGG模型是首选算法...

猜你喜欢

我的 2017 技术流水账

再见,AngularJS 第一次使用 AngularJS 是在 2014 年,那时候正在做一个回合制的手游项目,编写后端的同时,也顺手编写了 GM 工具和 Web 页战斗模拟工具,为了方便,整个工具全部写在一个页面中。页面交互全部使用 jQuery 完成,写到中后期,已经被获取表单数据、绑定事件、修改 DOM 元素折腾得不行。于是尝试了 AngularJS ,整个人都感觉不一样了,完全是像写后端代...

云服务器搭建—开源软件诞生5

基础设施【硬件】篇--第5篇 用日志记录“开源软件”的诞生 赤龙ERP开源地址: 点亮星标,感谢支持,与开发者交流 kzca2000 码云:https://gitee.com/redragon/redragon-erp GitHub:https://github.com/redragon1985/redragon-erp 赤龙ERP官网:https://www.redrag...

基于命令行的绘图程序的实现-Java-version1.0

【要求】 按下图创建绘图类集合 1.其中 Shape类是图形类的抽象父类, 它包含一个抽象方法draw(),在他的派生类中都实现了draw()方法(只需要将本实例的类名称和坐标属性输出到标准输出即可)、各自的属性和属性的修改方法; 2.Graphic是用来存储当前已有的对象、绘制已有的对象实例和改变某个实例对象形状(例如位置坐标)等功能,其内部有存储Shape类及其子类实例的容器集合(例如shap...

【开源】STM32F407-定时器实验教程 ——疯壳·ARM双处理器开发板系列

目录 第一节 定时器介绍 第二节 定时器常用寄存器介绍 第三节 实验 第四节 实验现象 第一节 定时器介绍 STM32F407的通用定时器包含一个16位或32位自动重载计数器,该计数器由可编程预分频器驱动。定时器可以用于测量输入信号的脉宽,输出PWM信号等,而且定时器之间是完全独立的。通用定时器功能有:16位/32位自动装载计数器;16位可编程预分频器,分频系数为1~65535之间的任意数值;4个...

分布式事务解决方案

本地事务 就是单体应用中单个线程内对一个数据库的事务提交。 如图所示,本地事务是由RM管理,RM指的是资源管理器。比如DBMS。 状态只维护在资源管理器中,支持严格的ACID。 缺点当然是不支持分布式事务处理啦。 ACID是传统的单机数据库事务的特性,目的就是保证数据库的一致性。 这里的一致性指的是强一致性,那当然肯定还有弱一致性。 强一致性:任何读取数据的操作都能读到最新写入的数据。 弱一致性:...

问答精选

Add a non capturing group to a character class

I am trying to define group of characters to be part of a charecter set to not match in my regular expression. Sample input: Wished capture: My problem is that /(?:\s+\-\s+)/ is successfully capturing...

Angular/Node Express + Flask API + Heroku, unsure about Procfile

so my application is served by express locally with a flask API, so running node server.js and python runner.py will initiate the frontend/backend. However when deploying to heroku, only the frontend ...

How to create HTML valid table with form inside rows

I want to create simple list in a form of table like on the image: I am confused how to implement update/delete actions. Both are [HttpPost] methods. But I can't create forms inside <td> tags. W...

javascript .forEach loop with nested code

I have this code: Now, I want to add code to files.forEach(uploadFile) Pseudo code: files.forEach( uploadFile(); console.log(file.name); ) I looked here: For-each over an array in JavaScript So I trie...

How do i access a sequence in Client File?

I have used a sequence(array) in Corba ,how do I access it in Client File? What is the syntax for the same? the idl file contains Using this IDL https://github.com/JacORB/JacORB/blob/master/demo/any/s...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答