Oracle ☞ 两种方法解决Oracle的数值0.5只显示成.5问题

来源:互联网 发布:php如何实现异步多线程 编辑:程序博客网 时间:2024/05/16 10:46

Oracle对数值0.n转换成char类型的时候会自动忽略前面的0(原因好像是为了节省空间0.5保存到数据库为.5)。例如:

SQL> SELECT to_char(0.5) FROM  DUAL;   TO_CHAR(0.5)  ------------  .5  

解决方法:

方法一、  SELECT CASE           WHEN l_num LIKE '.%' THEN            '0'||l_num           ELSE            to_char(l_num)         END sal    FROM dual;  
方法二、  SELECT decode(substr(l_num,1,1),'.','0'||l_num,l_num) FROM  DUAL;   

实验如下:

对方法一进行实验,为了区分开来,使用不同数值替换  SQL> SELECT CASE    2           WHEN 0.5 LIKE '.%' THEN    3            '0'||.55555    4           ELSE    5            to_char(6666)    6         END sal    7    FROM dual;  SAL  -------  0.55555  
方法二进行实验,为了区分使用不同数值进行替换  SQL> SELECT decode(substr(0.5,1,1),'.','0'||.55555,6666) FROM  DUAL;   DECODE(SUBSTR(0.5,1,1),'.','0'  ------------------------------  0.55555  
1 0
原创粉丝点击