2010-07-02 6 views
1

oracle 데이터베이스의 테이블에 대해 특수 쿼리를 수행하려고합니다.Oracle 10g-Express Query

결과가 내가 가진 열거 형에 따라 정렬되기를 원합니다. 다음과 같이

열거 간다 :

private enum days 
{ 
    Saturday = 1, 
    Sunday, 
    Monday, 
    Tuesday, 
    Wednesday, 
    Thursday, 
} 

나는 결과가이 열거에 따라 정렬하고 싶습니다.

답변

0

이 질문은 SQL과 비슷합니다. 다음 참조 도움이 될 수 있습니다

http://www.techonthenet.com/oracle/functions/to_date.php

짐승 - 강제 방법은 당신의 SQL에 case 문을 사용하는 것입니다

;

SELECT CASE WHEN field1 = 'Saturday' then 1 
      WHEN field1 = 'Sunday' then 2 
      WHEN field1 = 'Monday' then 3 
      ... 
      END as dateval, 
     field1 as datedisplay 
    FROM table1 
ORDER BY 1; 

DECODE SQL 함수는 또한뿐만 아니라 작동하지만, 읽고 오타 나 실수를 방지하기 쉽게 때문에 CASE을 좋아 : 코드의 당신의 조각에 equivallent입니다.

날짜 값에 대한 자세한 정보가있는 경우 데이터베이스 필드에 날짜 값을 DATE 데이터 형식으로 그대로 두는 것이 좋습니다. 위의 참조를 사용하여 요일을 알아 내야 할 경우 올바른 요일 값을 나타내는 문자열로 날짜 값을 변환 할 수 있습니다. 테스트에

:

SELECT to_char(SYSDATE, 'DAY') as day_of_week 
    FROM dual; 

수율 :

WEDNESDAY 
(or whatever day of the week is local to your system) 

이 무엇이든 TO_CHAR 함수에서 반환하는 대소 문자 구분 있음을 유의하십시오. 이는 Oracle-XE를 포함하여 모든 Oracle 버전에서 작동해야합니다.