关于在SQLPLUS中小数不显示小数点前0的问题
来源:互联网 发布:720云全景制作软件 编辑:程序博客网 时间:2024/05/22 15:56
今天建了一张视图,用于查看商品的折扣率,却发现折扣率在SQLPLUS中居然有显示问题,而在其他软件上却没有,于是研究了一下SQLPLUS的数字显示问题,分享一下。
一、问题描述
SQL> select * from retail_d;
ID BILLDATE QTY TOT_AMT_LIST TOT_AMT_ACTUAL DISCOUNT---------- -------- ---------- ------------ -------------- ---------- 1001 20170501 3 12000 10000 .833333333 1002 20170502 2 11000 9000 .818181818 1003 20170503 1 10000 8000 .8 1004 20160501 5 10000 8000 .8 1005 20160502 5 15000 8000 .533333333 1006 20160503 1 5000 5000 1 1007 20170401 2 10000 5000 .5 1008 20170402 2 10000 5000 .5 1009 20170403 2 10000 10000 1 2005 20170405 1 5000 5000 1 2007 20170506 1 5000 5000 1
二、解决思路
由于在其他软件上显示正常,且这是一列虚列,所以一定不是数据问题。百度了一下,居然有人说转成string然后拼接个0,感觉不太靠谱,所以继续研究。
先看一下所有的小数的显示情况:
SQL> select 0.5 as id from dual; id---------- .5
可以确定这一定是显示问题了
三、解决问题
SQL> col id for 0.9SQL> / ID---- 0.5
使用COL 指令,修改列的显示格式
SQL> select * from retail_d; ID BILLDATE QTY TOT_AMT_LIST TOT_AMT_ACTUAL DISCOUNT ---- -------- ---------- ------------ -------------- ---------- #### 20170501 3 12000 10000 .833333333 #### 20170502 2 11000 9000 .818181818 #### 20170503 1 10000 8000 .8 #### 20160501 5 10000 8000 .8 #### 20160502 5 15000 8000 .533333333 #### 20160503 1 5000 5000 1 #### 20170401 2 10000 5000 .5 #### 20170402 2 10000 5000 .5 #### 20170403 2 10000 10000 1 #### 20170405 1 5000 5000 1 #### 20170506 1 5000 5000 1SQL> col discount for 0.09SQL> select * from retail_d;ID BILLDATE QTY TOT_AMT_LIST TOT_AMT_ACTUAL DISCOUNT---- -------- ---------- ------------ -------------- --------#### 20170501 3 12000 10000 0.83#### 20170502 2 11000 9000 0.82#### 20170503 1 10000 8000 0.80#### 20160501 5 10000 8000 0.80#### 20160502 5 15000 8000 0.53#### 20160503 1 5000 5000 1.00#### 20170401 2 10000 5000 0.50#### 20170402 2 10000 5000 0.50#### 20170403 2 10000 10000 1.00#### 20170405 1 5000 5000 1.00#### 20170506 1 5000 5000 1.00
多加一个0,即是多保留一位小数,还是很好理解的。
三、拓展
如果要显示为百分比的格式,或许就必须通过拼接字符串来实现了
SQL> select round(discount*100,2)||'%' as discount from retail_d;DISCOUNT-----------------------------------------83.33%81.82%80%80%53.33%100%50%50%100%100%100%
阅读全文
0 0
- 关于在SQLPLUS中小数不显示小数点前0的问题
- 关于小数点前0的显示问题
- oracle中小数 页面上不显示小数点
- 报表小数点前0不显示的问题解决
- 报表小数点前0不显示的问题解决
- oracle取出数据时候小数点前的0不显示
- DataFrame中小数的保留小数点后两位
- Delphi第三方控件dxdbgrid显示小数时不显示小数点前的0的解决办法
- Oracle问题——查询数值数据时,小数点前0不显示
- decimal数据小数点前不能显示的问题
- js 小数点前面的0不显示
- 关于Oracle检索字段值小数点前面0不显示问题
- sqlplus的显示问题
- sqlplus关于时间显示问题
- javaScript中小数相乘的问题
- 关于EL${}在jsp页面不显示的问题
- 关于在TextView中设置DrawableLeft不显示的问题
- oracle保存小数点前为"0"的问题
- 浅谈windows下搭建Vue.js开发环境
- 长按复制TextView
- R语言利用caret包比较模型性能差异
- memcached缓存服务器
- LeetCode@Math_507_Perfect_Number
- 关于在SQLPLUS中小数不显示小数点前0的问题
- RabbitMQ 入门指南(Java)
- 小程序二维码相关操作
- apache2 配置
- 快速排序算法
- LOADRUNNER高级特性应用案例
- Qt之界面数据存储与获取
- 2017精华版:jquery 中 ajax,后台获取数据库json数据,显示在html页面 02
- iOS打包成 ipa包