database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 39668 게시물 읽기
No. 39668
예외적인 정렬
작성자
휴일근무
작성일
2012-10-03 06:57
조회수
5,006

추석은 잘 보내셨는지요?

고객 요구사항이 변경이 되어 정렬을 다음 과 같이 해야 하는데...

코드 table

CODE CODE_NAME
01 1등급
02 2등급
03 3등급
04 4등급
05 5등급

 

실제 저가  정렬한 데이터

SEQ CODE CODE_NAME T_DATE
1 02 2등급 2012-10-01
1 01 1등급 2012-10-02
2 02 2등급 2012-10-02
3 03 3등급 2012-10-02
4 04 4등급 2012-10-02

이렇게 아름답게 정렬을 했습니다.

그런데 고객이

날짜가 바뀌고, 만약에  마지막 코드가 02면,

그 다음날 02일 찾아서 이어서 02가 오고 그다음 정렬을 하라고 합니다.

오름 차순, 내림 차순만 써봤지...이런경우는 처음이라........

SEQ CODE CODE_NAME T_DATE
1 02 2등급 2012-10-01
1 02 2등급 2012-10-02
2 03 3등급 2012-10-02
3 04 4등급 2012-10-02
4 01 1등급 2012-10-02

 

연휴인데 죄송합니다...

 

이 글에 대한 댓글이 총 1건 있습니다.

CODE = '02'이고 T_DATE = '20120931'인 데이터가 있는 경우

CODE = '02'이고 T_DATE = '20121003'인 데이터가 있는 경우
 
그 밖에 CODE 가 '02'가 아니고 다른 날짜의 데이터가 있는 경우.. 등등에 대해선 요구사항이 명확하지 않으므로 주어진 데이터만 가지고 ORDERING을 한다면..

 

 WITH V AS

(
    SELECT '01' CODE, '1등급' CODE_NAME, '20121002' DT FROM DUAL
    UNION ALL
    SELECT '02', '2등급', '20121001' FROM DUAL
    UNION ALL
    SELECT '02', '2등급', '20121002' FROM DUAL
    UNION ALL
    SELECT '03', '3등급', '20121002' FROM DUAL
    UNION ALL 
    SELECT '04', '4등급', '20121002' FROM DUAL
    UNION ALL
    SELECT '05', '5등급', '20121002' FROM DUAL
)
SELECT CODE, CODE_NAME, DT
FROM  (
        SELECT CODE, CODE_NAME, DT
             , LEAD(DT) OVER(PARTITION BY CODE ORDER BY DT) LEAD_DT
             , LAG(DT)  OVER(PARTITION BY CODE ORDER BY DT) LAG_DT
        FROM   V
      )
ORDER BY LEAD_DT, LAG_DT
 

 

햇살한조각님이 2012-10-04 10:58에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39671교재 추천 부탁드립니다. [3]
윤명철
2012-10-05
4495
39670쿼리 조언 부탁드립니다~~~ [1]
손님
2012-10-05
5064
39669쿼리(출퇴근) 구현 [1]
스님
2012-10-03
5046
39668예외적인 정렬 [1]
휴일근무
2012-10-03
5006
39667오라클 압축 해제가 안됩니다.
이관홍
2012-10-01
5719
39666여러행을 단일행으로 변환중 에러가 발생하였습니다. [2]
껌은요정
2012-09-28
7444
39665정렬????? [1]
정렬
2012-09-28
4264
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다