оракул 10g, формат запроса - PullRequest
2 голосов
/ 24 мая 2011

У меня есть небольшое сомнение. У меня ниже запрос

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

Этот столбец связи определяется как number(7,2).

Спасибо

Ответы [ 2 ]

7 голосов
/ 24 мая 2011

Используйте функцию TO_CHAR с моделью правильного формата . Кажется, вы хотите LTRIM(TO_CHAR(comm,'999990.99')) здесь.

0 голосов
/ 27 февраля 2013

LTRIM (TO_CHAR (comm, '999990.99')) работает для значений, которые имеют 2 цифры после десятичной точки.Если значение выше 0.123523 используется, оно округляет десятичные разряды, сохраняя только 2 цифры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...