티스토리 뷰

포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.

문제를 보자.

회사에 취직했다.

 

취직한 회사에서 oracle을 사용한다.

 

SELECT NAME
from (select * from animal_ins order by datetime)
where rownum=1;

프로그래머스에 sql 공부를 할 수 있게 세팅이 되어있어 공부한 내용 중 필요한 부분을 기록하려 한다.

 

지식적인 내용만 다룰 거라 설명이 자세하지 않을 수 있다.

 

일반적으로 from table_name이 오지만, from 뒤에 서브 쿼리를 넣어 조회를 할 수 도 있다.

 

처음에는

SELECT NAME
from animal_ins
where rownum=1
order by datetime;

으로 작성했다.

 

오답이다.

 

where rownum=1 이 먼저 실행되어 애초에 한 개의 행만 불러온 후 datetime에 의해 오름차순 정렬을 한다.

따라서 아무 의미 없는 쿼리이다.

 

순서또한 where 다음에 order가 와야 하기 때문에 초기방법을 사용해야 한다.

 

또한 다른 방법으로는

SELECT NAME
from animal_ins
order by datetime
FETCH FIRST ROW ONLY;

이 있다.

 

FETCH FIRST ROW ONLY를 사용하면 같은 의미로 사용할 수 있다.

 

 

//

OFFSET 10 ROWS
FETCH NEXT 5 ROWS ONLY;

11번째부터 5개 행을 불러온다.

댓글