공부/인프런 - Rookiss

Part 5-2-3. SQL 입문 : ORDER BY, TOP, OFFSET

셩잇님 2024. 1. 24. 12:02
반응형

 

 

💅 SQL 입문

 

 지난 시간에는 SELECT와 FROM, WHERE에 대해서 알아보았다. 오늘은 추가적으로 오름차순, 내림차순, 상위 N개 등 다양한 정렬에 대해서 알아보도록 한다. 

 


 

🤳 ORDER BY : 정렬

 

 ✝️ ASC : 오름차순 정렬

 

SELECT nameFirst, birthYear
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear;
SELECT nameFirst, birthYear
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear ASC;

 

 

ORDER BY의 순서는 WHERE 다음에 작성되며. 오름차순 ASC의 값이 디폴트 값을 가진다. 또한 생략할 경우 자동으로 오름차순 정렬로 진행된다.

 

 ✝️ DESC : 내림차순 정렬

 

SELECT namefirst, birthYear, birthMonth, birthDay
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC;

 

 

 먼저 작성한 birthYear을 먼저 내림차순 정렬 하고 그 다음으로 birthMonth을 내림 차순 정렬하고, 그 다음에 birthDay를 내림차순 정렬한다.

 


 

🤳 TOP

 

* TOP (n) 혹은 TOP n : 상위 n 개의 행들을 선택한다.

* TOP n PERCENT : 상위 n 퍼센트에 해당하는 행들을 선택한다.

 

SELECT 안에서 쓰이며, SQL Server 에서만 쓸 수 있는 예약어이다.

SELECT TOP(5) namefirst, birthYear, birthMonth, birthDay
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC;
SELECT TOP 5 namefirst, birthYear, birthMonth, birthDay
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC;

 

SELECT TOP 0.1 PERCENT *
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC;

 

 


 

🤳 OFFSET FETCH

 

OFFSET n ROWS : n 개의 행은 건너 뛴다. 즉, n+1 번째 행부터 출력된다.

FETCH NEXT n ROWS ONLY : n 개수만큼의 행을 출력한다.

OFFSET은 TOP 과 함께 쓰일 수 없다.

 

SELECT namefirst, birthYear, birthMonth, birthDay
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC
OFFSET 100 ROWS FETCH NEXT 5 ROWS ONLY;

 

 SELECT ~ ORDER BY를 실행하면 나오는 테이블에서 상위 100개 행은 제외하고 그 이후 5개의 행을 출력한다. 즉, SELECT ~ ORDER BY를 실행하면 나오는 테이블의 101 ~ 105 번째 행을 출력하는 것이다.

 

 

반응형