rownum 질문드립니다. 0 2 2,829

by 박군 [Oracle 기초] rownum [2015.01.06 11:33:15]


안녕하세요 rownum에 대해 공부를 하고있는데 이해가 되지 않는 부분이 있어 질문드립니다.

질문 : 왜 where rownum = 1, rownum < 5은 조회가 가능하고 rownum = 2는 출력이 되지 않는건가요?

구체적으로 설명해주시면 감사하겠습니다.

가령  where절이 먼저 실행되어 그렇습니다.. 이런 대답으로는 이해가 가지 않습니다.

 

 

 

by 낭만캐치 [2015.01.06 11:45:44]

rownum은 데이터에 고정된 값이 아니라 select되는 값에 따라서 동적으로 부여되는 번호입니다. 다건의 데이터중 2번째 데이터를 가져오기 위해서 where절에 rownum='2'를 했을때, 첫번째 데이터는 rownum이 1이므로 제외되지만, 두번째 데이터역시 rownum이 1이므로 가져올 수 없죠. (rownum 1이 없이는 결코 2에 도달할 수 없기때문이죠)
만약, 두번째 데이터만을 가지고 오고 싶다면, 서브쿼리를 사용하여 rownum을 각 데이터에 고정시켜버리면됩니다.
select * from (select rownum, * from table) a where a.rownum='2'


by 신이만든짝퉁 [2015.01.06 15:50:29]

와우~ 명쾌하신 해설이시네요. ^_^


 

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