oracle查询不显示小数点前的0
1.问题起源
oracle 数据库字段值为小于1的小数时,使用char类型处理,会丢失小数点前面的0
例如0.35就变成了.35
2.解决办法:用to_char函数格式化数字显示
select to_char(0.338,'fm9999999990.00') from dual;
结果:0.34
这里重点要看 fm9999999999.99,表示整数部分最多10位,小数部分2位,fm表示去 掉转位字符串后前面的空格,不加fm,0.34前面会有空格的.
3.with的使用
WITH TMP1 AS (
SELECT 1 AS A, 2 AS B FROM DUAL
UNION
SELECT 1 AS A, 3 AS B FROM DUAL
UNION
SELECT 1 AS A, 4 AS B FROM DUAL
),
TMP2 AS (
SELECT 1 AS A, 2 AS B FROM DUAL
UNION
SELECT 1 AS A, 3 AS B FROM DUAL
UNION
SELECT 2 AS A, 4 AS B FROM DUAL
)
SELECT TMP1.*,TMP2.*
FROM TMP1 JOIN TMP2
ON TMP1.A = TMP2.A
作者“努力向前”
经过测试,怀疑是number转为char时,舍去了小数点前面的0
- SQL> select to_char(num,'999999999.999999999') from ml_test;
- TO_CHAR(NUM,'999999999.9999999
- ------------------------------
- .421240000
- .421246543
- 65432.421243240
- 4.621240000
- SQL> select to_char(num) from ml_test;
- TO_CHAR(NUM)
- ----------------------------------------
- .42124
- .4212465434
- 65432.42124324
- 4.62124
- SQL> select to_char(0.99) from dual;
- TO_CHAR(0.99)
- -------------
- .99
--4.怎么解决,解决方案如下
(1)
- SQL> select to_nmber(to_char(0.99)) from dual;
- TO_NUMBER(TO_CHAR(0.99))
- ------------------------
- 0.99
- SQL> select to_char(num,'fm999999990.999999999') from ml_test;
- TO_CHAR(NUM,'FM999999990.99999
- ------------------------------
- 0.42124
- 0.421246543
- 65432.42124324
- 4.62124
(2)使用case when 或 decode函数,取第一位是否为".", 补0 ,就ok了
- SQL> select to_char(num,'999999999.999999999') from ml_test;
- TO_CHAR(NUM,'999999999.9999999
- ------------------------------
- .421240000
- .421246543
- 65432.421243240
- 4.621240000
- SQL> select to_char(num) from ml_test;
- TO_CHAR(NUM)
- ----------------------------------------
- .42124
- .4212465434
- 65432.42124324
- 4.62124
- SQL> select to_char(0.99) from dual;
- TO_CHAR(0.99)
- -------------
- .99
oracle查询不显示小数点前的0的更多相关文章
- bc显示小数点前的0
bc是强大而常用的计算工具.不过在除法运算时,如果得到的结果值小于1,得到的小数前面的0不存.本篇提供几个常用小数点前缺0的解决方法. [root@maqing ~]# bc bc Copyright ...
- Datagridview中数字格式列 不显示小数点前面的0
用代码设置DataGridView中某列为数字格式,但当小数为0.*的时候,前面的0却不显示.只显示.*. 看网上有说: 调整本地设置,控制面板-区域和语言选项,在弹出框的区域选项卡中,选择自定义,在 ...
- oracle 绝对值小于1的数值显示小数点前面的0
SELECT DECODE(TRUNC(-.98),0,REPLACE(TO_CHAR(-.98), '.', '0.'),TO_CHAR(-.98))FROM DUAL;
- 注意SSIS中的DT_NUMERIC类型转换为字符类型(比如DT_WSTR)时,会截断小数点前的0
我们知道SSIS中有许多数据类型,如下图所示: 但是DT_NUMERIC这个类型有个陷进要注意,我们来做个实验,随便定义一个String类型的SSIS包变量,然后打开该变量表达式窗口: 在变量表达式窗 ...
- Oracle查询使用空间比较大的前15个表
-- 查询使用空间比较大的前15个表 select a.* from( ,2) all_size from dba_segments where SEGMENT_TYPE='TABLE' order ...
- 【oracle查询】oracle查询字段显示#号 (井号)
客户反映字段查询为井号,我自己没有遇到这种情况,于是上网百度了一下. 下面的答案很好地解决了问题,哈哈哈.
- oracle查询排序后的前几条记录
select * from (select * from table order by 字段名 desc) where rownum<你要查的记录条数,这样才能符合条件.
- oracle查询当前系统时间前10天的数据
select * from eo_c_order t where t.create_time>systimestamp-interval'1'day; 转载于:https://www.cnblo ...
- oracle小数点前零丢失的问题
1.问题起源 oracle 数据库 字段值为小于1的小数时,使用char类型处理,会丢失小数点前面的0 例如0.2就变成了.2 2.解决办法: (1)用to_char函数 ...
随机推荐
- smartforms 字段文本碰见 "-" 自动换行
长文本会在 '-' 这个符号处自动换行 原理:SAP 标准SMARTFORMS 的功能,遇到 '-' 自动判断后面字段是否能在本行完全显示,不够则换行 注意:如果一行文本有多个 ‘-’ ,则 判断 ' ...
- sublime text3中使用PHP编译系统
前言: php是服务器端语言,我们平时写的php代码想要查看运行结果的话,通常会搭建web服务器,然后通过浏览器访问.而对于有时候一些简单的测试代码来说,此过程就有点繁琐了.编译系统的好处是,可以让我 ...
- A Bite Of React(1)
react: component and views : produce html abd add them on a page( in the dom) <import React from ...
- Spring Boot & Redis 用起来真简单!
作者:java_老男孩 https://blog.51cto.com/14230003/2368721 Redis 是目前业界使用最广泛的内存数据存储.相比 Memcached,Redis 支持更丰 ...
- 组件化框架设计之apt编译时期自动生成代码&动态类加载(二)
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680 本篇文章将继续从以下两个内容来介绍组件化框架设计: apt编译时 ...
- luoguP3258 [JLOI2014]松鼠的新家 题解(树上差分)
P3258 [JLOI2014]松鼠的新家 题目 树上差分:树上差分总结 #include<iostream> #include<cstdlib> #include<c ...
- 64.Find the Duplicate Number(发现重复数字)
Level: Medium 题目描述: Given an array nums containing n + 1 integers where each integer is between 1 ...
- 使用python开启你的opencv之旅---图像的读入,存储
python的便捷是如此的引人着迷,而opencv给python提供的接口使我们能够使用python来快速验证我们的想法,或者与别的模块快速结合,在这个系列文章我会通过jupyter notebook ...
- http请求访问响应慢问题解决的基本思路
第一步,检查网络 ping命令检查网络域名解析是否正常,ping服务器的延迟是否过大,如果过大可以检查Ip是否冲突,或者交换机网线是否正常插好,通过nmon还可以查看网络流量,一般用的千兆交换机理论速 ...
- (PASS)JAVA数组去重 三种方法 (不用集合)
第一种方法(只学到数组的看): 定义一个新的数组长度和旧数组的长度一样,存储除去重复数据的旧数组的数据和0, package demo01; import java.sql.Array; import ...