오라클 > MYSQL 변경 관련입니다. 0 6 2,136

by 헐레벌떡 [DB 기타] lead [2016.03.03 11:22:19]


안녕하세요.

아래 쿼리를 오라클에서 MYSQL로 변경중입니다.

변경 부분은 lead over rownum 등입니다.

도움 부탁드립니다 __)

SELECT NUM,
       MENU_ID,
       UPPER_MENU_ID,
       MENU_DEPTH,
       LEAD (MENU_DEPTH) OVER (ORDER BY NUM) AS NEXT_DEPTH,
       LEAD (UPPER_MENU_ID) OVER (ORDER BY NUM) AS NEXT_ID
  FROM
       (SELECT ROWNUM AS NUM,
              MENU_ID,
              UPPER_MENU_ID,
              MENU_DEPTH
         FROM MENU
        WHERE DEPTH = 1
       )
ORDER BY ORDERS

변경 부분은

LEAD (MENU_DEPTH) OVER (ORDER BY NUM) AS NEXT_DEPTH,
LEAD (UPPER_MENU_ID) OVER (ORDER BY NUM) AS NEXT_ID,

ROWNUM 입니다.

감사합니다.

by 마농 [2016.03.03 12:52:19]

원본쿼리가 이상합니다.
1. ORDER BY orders 했는데...
  - orders 는 없는 항목입니다.
2. ROWNUM num 을 정렬기준으로 사용하는데?
  - 이는 바람직하지 않습니다.
  - 명확한 정렬기준이 별도로 필요합니다.


by 헐레벌떡 [2016.03.03 13:10:33]

아 필요없는걸 제거하다 보니 누락되었습니다;

실제로 menu 테이블에 있는 컬럼입니다. __)


by 헐레벌떡 [2016.03.03 13:14:07]

rownum num 관련은 기존에 쿼리가 이렇게 되어 있는 상태입니다.

실제로 제가 짠 쿼리가 아니라 명확히 대답을 해드릴수가 없는 상태이네요.

특별한 기준없이 짠 쿼리가 아닌지 추측이 될 뿐입니다;


by 헐레벌떡 [2016.03.03 13:27:13]

 LEAD 해서 항목이 있으면 그 값 없으면 null 로 나오면 될 거 같습니다;


by 마농 [2016.03.03 13:31:16]

정렬기준이 반드시 필요합니다.

원하는 결과물의 정렬 기준만 제시해 주시면 됩니다.


by 헐레벌떡 [2016.03.03 13:40:20]

분석이 조금 짧았던거 같습니다. 분석 후 다시 댓글 남기겠습니다.

감사합니다 마농님!!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입