MSSQL TOP 원하는 행 수(개수) 만큼 지정하는 방법
MS SQL에서는 쿼리 결과 반환되는 행을 지정한 행 수(개수) 만큼만 설정할 수 있도록 SELECT 절에 TOP 구문을 제공하고 있습니다. 대부분 ORDER BY 절과 함께 많이 사용합니다. 저 같은 경우는 테이블에 어떤 데이터 있는지 확인할 때 주로 TOP 10 이런 식으로 10개 정도만 데이터를 확인할 때 주로 많이 사용합니다. 테이블이 너무 많아 실제로 어떤 데이터가 들어 있는지 모르기 때문에 쿼리문 작업을 할 때 TOP 구문은 대부분 사용합니다.
그럼 간단한 예제를 통해서 TOP 구문에 대해서 알아보죠.
포스트 기준
– Microsoft SQL Server 2019
– SSMS 18.10
구문 (syntaxsql)
TOP (원하는 행 수) [PERCENT] [ WITH TIES ]
사용 예제
1. 테스트 테이블 및 데이터 생성
-- 테스트 테이블 생성
CREATE TABLE BS_DEMO_6 (
ID INT DEFAULT(0) NOT NULL,
NAME NVARCHAR(50) NOT NULL,
SCORE SMALLINT DEFAULT(0) NOT NULL,
PRIMARY KEY CLUSTERED (ID)
)
-- 데이터 INSERT
INSERT INTO BS_DEMO_6 VALUES (1, '아무개1', 100)
INSERT INTO BS_DEMO_6 VALUES (2, '아무개2', 90)
INSERT INTO BS_DEMO_6 VALUES (3, '아무개3', 80)
INSERT INTO BS_DEMO_6 VALUES (4, '아무개4', 70)
INSERT INTO BS_DEMO_6 VALUES (5, '아무개5', 60)
INSERT INTO BS_DEMO_6 VALUES (6, '아무개6', 90)
INSERT INTO BS_DEMO_6 VALUES (7, '아무개7', 80)
-- 데이터 확인
SELECT * FROM BS_DEMO_6
2. TOP 구문 사용 예제
-- 3개 행만 가져오기
SELECT TOP 3 *
FROM BS_DEMO_6
-- SCORE 내림순으로 3개 행만 가져오기
SELECT TOP 3 *
FROM BS_DEMO_6
ORDER BY SCORE DESC
3. PERCENT 옵션 사용 예제
▶ PERCENT를 사용하면 백분율을 지정할 수 있습니다. 개인적으로는 많이 사용하지는 않습니다.
☆ 소수 값에서는 올림 처리됨
-- 총 7건 중에서 30% 행만 가져오기 (소수점에서 올림 처리)
SELECT TOP 30 PERCENT *
FROM BS_DEMO_6
ORDER BY 3
4. WITH TIES 옵션 사용 예제
▶ WITH TIES를 사용하면 마지막 행의 값과 일치하는 행 포함합니다. 개인적으로는 많이 사용하지는 않습니다.
-- SCORE 내림순으로 4개 행만 가져오기
SELECT TOP 4 *
FROM BS_DEMO_6
ORDER BY 3 DESC
-- SCORE 내림순으로 4개 행만 가져오기 (마지막 동률 포함)
SELECT TOP 4 WITH TIES *
FROM BS_DEMO_6
ORDER BY 3 DESC
함께 보면 좋은 게시글
- MSSQL DISTINCT 중복 행 제거하는 방법 (SELELCT 절)
- MSSQL ORDER BY 절 데이터 정렬 방법(순서 지정) 오름차순, 내림차순
- MSSQL 순번 매기기, 순서 지정 방법 (ROW_NUMBER)
- MSSQL GROUP BY 절, HAVING 절 사용법
- MSSQL 논리 연산자 BETWEEN, EXISTS, IN, LIKE, NOT 등 (WHERE 절)
이 글이 도움이 되셨다면 공유 부탁 드립니다.


![[SSMS] 로컬 서버(PC)에 설치한 MSSQL 서버 연결하는 방법](https://bluesharehub.com/wp-content/uploads/2022/02/img_41.png)
