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 38775 게시물 읽기
No. 38775
decode 문 안에서 정렬
작성자
박주영(vf19)
작성일
2011-08-11 20:48
조회수
4,521

     select a."노선ID",b."정류장ID",

    case when(d.depart_sta_id = d.arrv_sta_id) then 
    decode(c.sta_seq,1,?,LAG(b."정류장ID", 1, 0) OVER (ORDER BY c.route_id,c.STA_SEQ)) 
    else
    decode(c.sta_seq,1,'',LAG(b."정류장ID", 1, 0) OVER (ORDER BY c.route_id,c.STA_SEQ)) end AS 전정류장ID,
    c.sta_seq as 정차순번
    from "MV_노선" a, "MV_정류장" b, mst_bus_routeinfo@card c,mst_bus_route@card d
    where trim(a."CARD_노선ID") = trim(c.route_id) and trim(b."CARD_정류장ID") = trim(c.bus_sta_id) and d.bus_route_id = c.route_id
   
    정차순번순으로 노선ID, 정류장ID, 전정류장ID 를 표출하고 있습니다. 
    기본적으로 전정류장 ID 는 정차순번이 1번일때는 1번 전에는 없으므로 null 로
    표현합니다. 그런데 정류장에는 순환하는 정류장이 있어서(조건 = d.depart_sta_id = d.arrv_sta_id )
    1번 전 정류장이 그 정류장 정차순번에 마지막 정류장이 될떄가 있습니다.
    그 조건을 ? 표 해놓은곳에 넣고 싶은데 , 방법을 모르겠습니다.
    c.sta_seq 가 number 타입이라 max 함수를 사용하면 될것도 같은데 group by 절 사용 미숙으로 잘안되더라구요
   
   조언부탁드립니다.  

 

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

CASE WHEN (c.sta_seq = 1 AND d.depart_sta_id = d.arrv_sta_id)
THEN LAST_VALUE(b."정류장ID") OVER(PARTITION BY a."노선ID" ORDER BY c.sta_seq)
ELSE LAG(b."정류장ID") OVER(PARTITION BY a."노선ID" ORDER BY c.sta_seq)
END AS 전정류장ID

마농(manon94)님이 2011-08-12 08:33에 작성한 댓글입니다.
이 댓글은 2011-08-12 08:34에 마지막으로 수정되었습니다.

 아... 이렇게 CASE 문 조건을 덧붙여서 쿼리를 간소화 하고 , 

끝자리 구하는건  정렬한 것중에 last_value 함수를 쓰면 되는군요 .. 

마농님 정말 감사합니다. ^^

박주영(vf19)님이 2011-08-12 09:12에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
38778Active - Active DB 데이터 동기화 [4]
곤지
2011-08-12
6208
38777update 하는 조건... [2]
권기혁
2011-08-12
4263
38776oracle sql developer 설치 및 사용 문의 [1]
전상도
2011-08-12
4662
38775decode 문 안에서 정렬 [2]
박주영
2011-08-11
4521
38774키가 없는 테이블 업데이트하기... [2]
나초보
2011-08-11
3807
38772두개의 문자열 비교하여, 위치별 틀린 갯수 구하기 [3]
dol
2011-08-11
5174
38771wm_concat 의 정렬 문의좀 드릴게요... [1]
박수길
2011-08-11
12396
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다