oracle 10g,查询格式

时间:2011-05-24 08:07:43

标签: oracle oracle10g

我有一点怀疑。我有以下查询

SELECT empno 
        || '|' 
        || ename 
        || '|' 
        || sal 
        || '|' 
        || comm 
FROM   (SELECT empno, 
               ename, 
               sal, 
               comm 
        FROM   emp);

输出结果如下:

7611|Grp Fract|2001|.11
7499|ALLEN WOR|1600|.22
7521|WARD|1250|10.23
7566|JONES|2975|234.23
7654|MARTIN|1250|.98

最后一列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

Ths comm列定义为number(7,2)

由于

2 个答案:

答案 0 :(得分:7)

TO_CHAR功能与proper format model一起使用。看来你想要LTRIM(TO_CHAR(comm,'999990.99'))

答案 1 :(得分:0)

LTRIM(TO_CHAR(comm,'999990.99'))适用于小数点后2位的值。 如果在上面使用了像0.123523这样的值,则它会舍入小数位,仅保留2位数。