oracle 10g,查询格式

use*_*334 2 oracle oracle10g

我有一个小疑问.我有以下查询

SELECT empno 
        || '|' 
        || ename 
        || '|' 
        || sal 
        || '|' 
        || comm 
FROM   (SELECT empno, 
               ename, 
               sal, 
               comm 
        FROM   emp);
Run Code Online (Sandbox Code Playgroud)

输出结果如下:

7611|Grp Fract|2001|.11
7499|ALLEN WOR|1600|.22
7521|WARD|1250|10.23
7566|JONES|2975|234.23
7654|MARTIN|1250|.98
Run Code Online (Sandbox Code Playgroud)

最后一列COMM的值为0.11,0.22,0.98

但上面的查询返回的数据为.11,.22,.98.当我连接数据以及如何解决这个问题时,任何人都可以帮助我理解为什么会发生这种情况,我需要准确的值,因为它在COMM列中.

o/p应该是

7611|Grp Fract|2001|0.11
7499|ALLEN WOR|1600|0.22
7521|WARD|1250|10.23
7566|JONES|2975|234.23
7654|MARTIN|1250|0.98
Run Code Online (Sandbox Code Playgroud)

通讯列定义为number(7,2).

谢谢

Ben*_*oit 7

使用TO_CHAR具有适当格式模型的函数.看来你想要LTRIM(TO_CHAR(comm,'999990.99'))这里.

  • @ user767334 - 如果您已经*阅读了Benoit链接到的文档*,您会理解0是为了提供小于1的十进制数的前导零,即您要求的. (2认同)