Oracle TO_CHAR Format Mask для отображения как целых чисел, так и чисел с плавающей запятой

Вопрос: Я пытаюсь найти правильную маску формата Oracle для отображения чисел на странице Apex в отчете определенным образом. В большинстве случаев эти числа являются целыми числами, но иногда эти числа могут быть числами с плавающей запятой. Скажем, у меня есть три следующих запроса: Запрос 1 SELECT TO_CHAR(1, '', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL; Запрос

Вопрос:

Я пытаюсь найти правильную маску формата Oracle для отображения чисел на странице Apex в отчете определенным образом. В большинстве случаев эти числа являются целыми числами, но иногда эти числа могут быть числами с плавающей запятой. Скажем, у меня есть три следующих запроса:

Запрос 1

SELECT TO_CHAR(1, ‘<Format Mask>’, ‘NLS_NUMERIC_CHARACTERS = »,.»’) FROM DUAL;

Запрос 2

SELECT TO_CHAR(0.1, ‘<Format Mask>’, ‘NLS_NUMERIC_CHARACTERS = »,.»’) FROM DUAL;

Запрос 3

SELECT TO_CHAR(0.01, ‘<Format Mask>’, ‘NLS_NUMERIC_CHARACTERS = »,.»’) FROM DUAL;

Теперь я хочу использовать одну маску формата, которая даст мне следующие результаты:

Результат 1

1

Результат 2

0,1

Результат 3

0,01

Может ли кто-нибудь предоставить мне правильную маску формата для этого? Я пробовал маску формата, например, FM990D999, но это оставляет меня с запятой, заканчивающей 1 в Query 1.

Лучший ответ:

Существуют способы изменить значение столбца в запросе, сохраняя при этом (некоторые) функциональные возможности в отчетах. Однако, имея несколько таких столбцов и несколько отчетов, вы можете найти много накладных расходов для небольшого выигрыша.
Посмотрите этот пост на форумах OTN: порядок по дате в IR
Проблема почти такая: данные в столбце представляют дату, но на самом деле не дату. Это сообщение содержит решение для использования в вершине <4.2.
Начиная с 4.2 и выше у вас есть лучший вариант, называемый выражением HTML.
Опять же, связанный с OTN: Re: Отформатирование/сортировка отчета

Цитируется из связанного сообщения, пользователь fac586

Включите в запрос как дисперсию, так и абс (дисперсию):

SELECT region, estimate, actual, (estimate — actual) AS variance, ABS(estimate — actual) AS abs_variance, (CASE WHEN (estimate — actual)>=0 THEN ‘green’ WHEN (estimate — actual)<0 THEN ‘red’ ELSE NULL END) AS variance_color from expenses

И выражение HTML для столбца “дисперсия”:

<span style=»color: #VARIANCE_COLOR#; font-weight: bold;»>#ABS_VARIANCE#</span>

Скройте #VARIANCE_COLOR# и #ABS_VARIANCE#.

#ABS_VARIANCE# – значение, указанное в столбце, но сортировка выполняется в базовом SQL с использованием исходного значения дисперсии.

Это очень похоже на предложение Алекса, но это немного больше работы: форматирование в источнике, добавление выражения html, скрытие другого столбца.
Я полагаю, это зависит от того, насколько вы хотите его водить. Почему бы просто не применить формат к столбцу через его атрибуты?
Также имейте в виду, что в этих полях можно использовать синтаксис подстановки строк. У вас может быть несколько элементов приложения, содержащих маски формата, а затем ссылку на правильную маску в поле маски формата. Например: элемент приложения AI_FORMAT_MASK1 имеет значение FM9990D00.
В поле маски формата вы можете использовать &AI_FORMAT_MASK1.

Оцените статью
Добавить комментарий