Как применить отступы к десятичным значениям в Oracle? - PullRequest
0 голосов
/ 01 октября 2019

Мне нужна помощь по применению заполнения для десятичных значений в Oracle.

Например:

  • -36693.76 должно отображаться как -000036693.76
  • 367.2 должен отображаться как +000000367.20

Заполнение должно быть (9,2), и знак также должен отображаться.

Ответы [ 2 ]

0 голосов
/ 01 октября 2019

Вы можете использовать to_char() с соответствующей маской формата:

TO_CHAR(the_column,'S000000000.00') 

S указывает положение знака. 0 указывает на отображение 0, если для этой цифры недоступно значение (9 будет отображать пробел)

Следующее:

with sample_data(the_column) as (
  select 367.2 from dual 
  union all
  select -36693.76 from dual
  union all
  select 1.234 from dual
  union all
  select 1.236 from dual
)
select TO_CHAR(the_column,'S000000000.00') as the_column
from sample_data;

возвращает:

THE_COLUMN   
-------------
+000000367.20
-000036693.76
+000000001.23
+000000001.24

Обратите внимание, как 1.234 было округлено до 1.23 и 1.236 до 1.24

0 голосов
/ 01 октября 2019

Вот ваш запрос.

with cte(num) AS(
  select 367.2 from dual 
  union all
  select -36693.76 from dual
)
select case when num < 0 then  concat('-', TO_CHAR(num*-1,'000000000.00'))  else concat('+', TO_CHAR(num,'000000000.00')) end 
from cte

результат:

enter image description here

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