Oracle PL/SQL查询语句有的时候要将number类型的字段转换成varchar2类型
在报表或页面上经常会出现:
.440
.441
1.0
10.100
之类的数据,要不就是小数点前面的0被to_char或cast函数去掉了,或是末尾的无效小数位上的0没有被去掉,很是闹心。
jsp界面上还好处理,可以用类似下面的方法来处理:
体重:<ww:text name='format.num.3'><ww:param value='person.weight'/></ww:text>(Km)
但是在超级报表中,单元格中要显示的数字就不太好处理了,要将查询出的字段进行处理,
下面我总结了一下处理方法:
step1:格式化将小数点前的0保留、去掉末尾的0,去掉前面因格式化产生的多余的空格:
select t.num from(
select ltrim(rtrim(to_char(0.44, '99990.000'), '0') , ' ') as num from dual union
select ltrim(rtrim(to_char(0.441, '99990.000'), '0'), ' ') as num from dual union
select ltrim(rtrim(to_char(1.0, '99990.0'), '0'), ' ') as num from dual union
select ltrim(rtrim(to_char(10.100, '99990.000'), '0'), ' ') as num from dual
)t
/*
结果:
0.44
0.441
1.
10.1
*/
step2:去掉可以多余的小数点:
select
(case when instr(t.num,'.')=length(t.num) then rtrim(t.num,'.') else t.num end) as num
from(
select ltrim(rtrim(to_char(0.44, '99990.000'), '0') , ' ') as num from dual union
select ltrim(rtrim(to_char(0.441, '99990.000'), '0'), ' ') as num from dual union
select ltrim(rtrim(to_char(1.0, '99990.0'), '0'), ' ') as num from dual union
select ltrim(rtrim(to_char(10.100, '99990.000'), '0'), ' ') as num from dual
)t
/*
结果:
0.44
0.441
1
10.1
*/
分享到:
相关推荐
lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算string所占的字符长度:返回字符串的长度,单位是字符 ...PS:oracle去掉字符串中所有指定字符 Selec
去尾法是指直接去掉数值的小数部分,只保留整数部分或指定精度的小数部分。在Oracle中,`TRUNC()` 函数可以实现这一功能。该函数允许用户指定保留小数的位数,默认情况下,如果不指定则会返回整数部分。 **语法**: ...
在SQL Server中,处理数值类型的数据时,特别是浮点数(float)或定点数(decimal, numeric),我们可能会遇到一个问题:当数值末尾有过多的零时,它们并不总是直观地显示出来。尤其是在进行计算或者存储后,这些零...
"打包 Oracle 客户端的两种方法" 在软件开发和数据库管理中,Oracle 客户端是非常重要的组件,然而在实际应用中,如何将 Oracle 客户端打包到安装程序中是一件非常重要的事情。本文将介绍两种方法来打包 Oracle ...
Oracle EBS(Enterprise Business Suite)报表输出时遇到的一个常见问题是,字符字段前部的“0”在导出到Excel后可能会被自动去掉。这个问题主要涉及到数据格式化和Excel的自动处理机制。以下是对这个主题的详细解释...
Oracle 12.2 主从数据同步方法 Oracle 12.2 主从数据同步方法可以实现容器数据库的数据同步,目前只支持 DML 的数据同步,不包含 DDL 的同步。下面将详细介绍 Oracle 12.2 主从数据同步方法的实现步骤。 一、背景 ...
- `decimal_places`:保留的小数位数,默认为0,即返回整数。 - **示例**: ```sql SELECT ROUND(1.2345, 3) FROM DUAL; ``` - **输出结果**:1.235 - **解释**:该示例中,1.2345被四舍五入到3位小数后变成了...
### Oracle常用函数与使用方法详解 #### 一、Oracle SQL函数概述 在Oracle数据库中,SQL函数被广泛用于处理各种数据类型,包括数值、字符、日期等,它们能够帮助我们更高效地进行数据检索和分析。本文将详细介绍...
C#调用oracle存储过程的通用方法 C#调用oracle存储过程的通用方法
本文实例讲述了Python操作Oracle数据库的简单方法和封装类。分享给大家供大家参考,具体如下: 最近工作有接触到Oracle,发现很多地方用Python脚本去做的话,应该会方便很多,所以就想先学习下Python操作Oracle的...
代码如下:/*LYXXB(陵园信息表)lymc(甲方),dz(通信地址),dh(联系电话)*/SELECT lymc,dz,dh FROM lyxxb/*去掉回车(\b)*/update lyxxb set dz=replace(dz,chr(13),”)/*去掉换行(\n)*/update lyxxb set dz=replace(dz,...
ORACLE实施方法论ORACLE实施方法论ORACLE实施方法论
去掉回车update zhzl_address t set t.add_administration_num=replace(t.add_administration_num,chr(13),”);去掉空格update zhzl_address t set t.add_administration_num=trim(t.add_administration_num);——...
本文将详细介绍一种无需安装Oracle客户端,仅使用C#.NET就能连接远程Oracle数据库的方法,这对于轻量级的开发环境或者不希望安装大型客户端的场景尤其适用。 首先,你需要下载Oracle的数据提供程序,即Oracle Data ...
### Oracle数据库日志查看方法详解 #### 一、概述 Oracle数据库是企业级应用中广泛使用的数据库管理系统之一,为了确保数据库系统的稳定运行和快速定位问题,掌握Oracle数据库日志查看方法至关重要。本文将详细...
在Oracle数据库中,处理数值类型的数据并保留特定的小数位数是常见的需求,尤其是在报表生成和数据分析场景。本文主要探讨了四种保留两位小数的方法,适用于不同的情况和需求。 1. **使用`ROUND`和`TRUNC`函数**: ...
搜集整理的Oracle数据库安装与配置方法以及C#连接操作Oracle数据库的典型代码,比较管用的说。主要包括10个方面内容:1、ORACLE817安装(服务器端/客户端)。2、ORACLE817配置(服务器端)。3、ORACLE817配置...
本文将详细解析如何在SQL查询语句中实现去掉0的方法,特别关注在Oracle数据库环境下使用decode函数结合substr函数来实现这一目标。 ### SQL中的Decode与Substr函数 #### Decode函数 `DECODE`函数在SQL中是一种多...
oracle数据导出高效工具,详细介绍了sqluldr2的使用方法和各个参数的含义.