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函数理论
round | select round(123.4567,2) = 123.46 | 进行四舍五入处理,保留2位小数 |
---|---|---|
power | select 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:数值型函数,日期函数,转换函数,组函数,分组,排序,两表查询连接