2014-02-05 5 views
1

정확한 오라클 형식 마스크를 찾아 특정 방식으로 보고서의 Apex 페이지에 숫자를 표시하려고합니다. 대부분이 숫자는 정수이지만 때로는이 숫자는 부동 소수점 숫자가 될 수 있습니다. 의 나는 다음과 같은 세 가지 쿼리 있다고 가정 해 봅시다 :오라클 TO_CHAR 형식 정수 및 부동 소수점 숫자를 표시하기위한 마스크

쿼리를 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 1.

+0

[_char \ 진수 번호 및 Oracle] (의 중복 가능성 http://stackoverflow.com/questions/2033756/decimal-number-to-char-을 사용할 수 있습니다 and-oracle) – Ben

+0

@Ben 네, 질문은 매우 유사합니다. 아직 그 질문을 찾지 못했습니다. 그러나 Apex에서 형식 마스크 만 지정할 수 있기 때문에 주어진 상황에서 만족스럽지 않습니다. 그렇지 않으면 Apex 보고서에서 동작을 정렬하는 초기 단계에서 문자열을 생성해야합니다. –

+1

@BartvanderDrift - 포맷 마스크로 얻은 문자열을 '자를 수 없습니까?' –

답변

0

여전히 기능 (일부)을 유지하면서 쿼리에 열 값을 변경하는 방법이 있습니다 보고서에 그러나 이러한 여러 열과 여러 보고서를 사용하면 약간의 이익을 위해 많은 오버 헤드가있을 수 있습니다.
OTN 포럼에서이 게시물을보십시오. order by date in IR
문제는 대부분 동일합니다. 열의 데이터는 날짜를 나타내지 만 실제로는 날짜가 아닙니다. 이 게시물에는 정점 < 4.2에서 사용할 수있는 솔루션이 포함되어 있습니다.
4.2 버전부터 HTML 표현식이라는 더 나은 옵션을 사용할 수 있습니다.
다시 OTN에서 링크 : 링크 된 게시물에서 인용 Re: Report formatting/sorting issue

, 사용자 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> 

숨김 e #VARIANCE_COLOR##ABS_VARIANCE# 열.

#ABS_VARIANCE#은 열에 표시된 값이지만 원본 분산 값을 사용하여 원본 SQL에서 수행되는 정렬은 입니다.

이것은 Alex가 제안한 것과 비슷하지만, 소스에서 서식을 지정하고 html 표현식을 추가하고 다른 열을 숨기는 것입니다.
나는 그것이 당신이 얼마나 멀리 운전하고 싶은지에 달려 있다고 생각합니다. 속성을 통해 열에 형식을 적용하는 것이 가장 좋은 이유는 무엇입니까?
해당 필드에 문자열 대체 구문을 사용할 수도 있습니다. 형식 마스크가 포함 된 몇 가지 응용 프로그램 항목을 가질 수 있고 형식 마스크 필드에서 올바른 마스크를 참조 할 수 있습니다. 예 : 응용 프로그램 항목 AI_FORMAT_MASK1의 값은 FM9990D00입니다. 형식 마스크 필드에
당신은 &AI_FORMAT_MASK1.

+0

Tom, 두 가지 다른 열을 사용하는 솔루션이 마음에 듭니다. 나는 이것을 시도 할 것이다. 어쨌든 HTML 표현을 사용하여 유닛을 필드에 연결합니다. –

관련 문제