ORDER BY 기본 사용법ORDER BY를 사용하면 데이터를 오름차순(ASC) 또는 내림차순(DESC) 으로 정렬할 수 있다.
SELECT *
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear;
📌 ORDER BY birthYear : 출생 연도를 기준으로 오름차순 정렬 (작은 값 → 큰 값)
📌 IS NOT NULL : NULL 값을 제외 (NULL 값도 정렬 결과에 포함될 수 있으므로 필터링)
ASC와 DESC 옵션SELECT *
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear ASC;
📌 ASC : 오름차순(기본값) → 작은 값부터 큰 값 순서
SELECT *
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC;
📌 DESC : 내림차순 → 큰 값부터 작은 값 순서
하나의 열이 아니라 여러 개의 열을 기준으로 정렬할 수도 있다.
SELECT *
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC;
📌 birthYear DESC : 출생 연도를 기준으로 내림차순 정렬
📌 birthMonth DESC : 출생 연도가 같으면 월을 기준으로 내림차순 정렬
📌 birthDay DESC : 출생 연도와 월이 같으면 일을 기준으로 내림차순 정렬
즉, 연도 → 월 → 일 순서로 정렬을 수행한다.
ORDER BY와 TOP을 이용한 제한된 데이터 조회랭킹 시스템과 같이 정렬된 결과에서 상위 몇 개의 데이터를 가져오는 기능이 필요할 때 TOP을 사용한다.
TOP N 사용법SELECT TOP (10) *
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC;
📌 TOP (10) : 정렬된 결과에서 상위 10개 데이터만 조회
📌 ORDER BY : 출생 연도를 기준으로 정렬한 후, 상위 10명만 가져온다.
TOP N PERCENT 사용법SELECT TOP 1 PERCENT *
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC;
📌 TOP 1 PERCENT : 상위 1%의 데이터만 조회
TOP은 특정 개수만 가져올 수 있지만, 중간 범위 (예: 100~200위)만 가져오는 기능이 없다.
OFFSET & FETCH)랭킹 시스템에서는 100~200위와 같이 특정 범위의 데이터를 조회해야 할 때가 있다.
이때 OFFSET과 FETCH를 사용하면 원하는 범위의 데이터를 가져올 수 있다.
OFFSET과 FETCH 사용법USE BaseballData;
-- 100 ~ 200위 데이터 조회
SELECT *
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC
OFFSET 100 ROWS FETCH NEXT 100 ROWS ONLY;
📌 OFFSET 100 ROWS : 처음 100개 행을 건너뛰고
📌 FETCH NEXT 100 ROWS ONLY : 다음 100개의 행만 가져온다
즉, 100~200위 데이터를 가져오는 SQL 공식 문법이다.
하지만 실제 실무에서는 자주 사용되지 않는다.
ORDER BY 요약✅ ORDER BY : 데이터를 정렬하는 데 사용
✅ ASC : 오름차순 (기본값)
✅ DESC : 내림차순
✅ 다중 정렬 : 여러 개의 열을 기준으로 정렬할 수 있음
✅ TOP : 정렬 후 상위 몇 개의 데이터만 가져오기
✅ OFFSET FETCH : 특정 범위의 데이터 조회
SQL 심화:
GROUP BY,HAVING,JOIN,INDEX활용법
📌 SQL을 활용하여 데이터를 더욱 효율적으로 관리하는 방법을 익혀보자! 🚀