oracle中查询结果中有小数点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中查询结果中有小数点相关的知识,希望对你有一定的参考价值。

你这个问题很好解决,你这个就是因为数值太大了,数据库就采用科学计数法了。

比如你查询上图结果的Select语句是:
SELECT * FROM table;只要在查询前执行:
col item format 999999999999999999999999999;之后再执行查询语句,应该数值就是你想要的数值了。(PS:999999999999999999999999999这个数值可以根据你列的长度来设置)

希望可以帮助你,望采纳!!
参考技术A 对应字段的映射改一下精度
precision表示数字中的有效位。如果没有指定precision的话,oracle将使用38作为精度。
scale表示数字小数点右边的位数,scale默认设置为0.
@column(name='',scale=8)//表示8位小数点

oracle sql 转换成 hive sql -子查询转关联查询(十七),子查询中有2个表外字段关联写法,round函数与power函数的运用

其他sql格式也在更新中,可直接查看这个系列,要是没有你需要的格式,可在评论或私信我

hive的nvl中的子查询

round和power函数理论

roundselect round(123.4567,2) = 123.46进行四舍五入处理,保留2位小数
powerselect power(1,365)返回以 1 的 365 次幂

子查询中有2个表外字段关联写法sql案例

oracle 原sql

SELECT
	(SELECT
	round((
	SELECT
		power(
		select rate 
		from aaa
		where code = b.code
		and val = 'D'
		and vip = l.Vip)+ 1, 365)-1)* 100,
	2)
FROM
	dual) as aaa
FROM
	bbb b,
	lll l
WHERE
	b.polno = l.polno

hive 改sql

SELECT
	round((power((a.rate + 1), 365)-1)* 100,
	2) as Interestrate
FROM
	bbb b,
	lll l,
	aaa a
WHERE
	b.polno = l.polno
	and a.code = b.code
	and a.val = 'D'
	and a.vip = l.Vip

想法:子查询中关联了两张表,直接取出来合并到整个大sql里面

格外笔记

一开始我以为power和round这个是像sum这种聚合函数,需要分组才能通过演算

SELECT
	b.polno as polno,
	a.code as code,
	round((power((a.rate + 1), 365)-1)* 100,
	2) as Interestrate
FROM
	bbb b,
	lll l,
	aaa a
WHERE
	b.polno = l.polno
	and a.code = b.code
	and a.val = 'D'
	and a.vip = l.Vip

以上是关于oracle中查询结果中有小数点的主要内容,如果未能解决你的问题,请参考以下文章

oracle:数值型函数,日期函数,转换函数,组函数,分组,排序,两表查询连接

oracle语句中,某个段值想四舍五入,并且保留小数点的后2位,是否有函数可以直接写出来;

oracle保留两位小数

oracle 保留小数问题

oracle 保留小数点问题

Oracle数据库中的如何保留两位小数 并且在java中保留两位小说插入数据表中