본문 바로가기
Database/MSSQL

[MSSQL] TOP, TOP으로 중간 행부터 데이터 가져오기

by BeomBe 2023. 12. 29.
반응형

MSSQL로 데이터를 처리하다 보면 N개까지, 또는 중간 행 부터 가져와야하는 경우가 있다.

 

Table Class라고 예를 들면,

  이름 성적
1 A 85
2 B 95
3 C 72
4 D 80
5 E 95
6 F 92
7 G 78
8 H 100
9 I 86

 

우선 TOP을 사용하는 방법을 먼저 설명하면,

-- 기본
SELECT TOP Number *FROM Table;

-- 예시
SELECT TOP 5 *FROM Class;

-- 업데이트
UPDATE TOP (Number) Table;

-- 예시
UPDATE TOP (5) Table SET 성적 = '89' Where 이름 = 'I'

 

윗 코드를 참고하면 손 쉽게 TOP을 사용할 수 있다.

 

만약 중간행을 찾고싶다면, TOP을 중복해서 사용해주면 된다.

-- 기본
SELECT TOP (얻으려는 행의수) * 
FROM TABLE
WHERE COLUMN NOT IN 
( 
          SELECT TOP (중간의 시작위치) *
          FROM TABLE 
          WHERE COLUMN = data 
)
AND COLUMN = data 

-- 예시 성적이 80점 이상인 사람들중에 4,5등만 뽑아낸다면
SELECT TOP (2) * 
FROM TABLE
WHERE 성적 NOT IN 
( 
          SELECT TOP (3) *
          FROM TABLE 
          WHERE 성적 >= 80
)
AND 성적 >= 80
반응형

'Database > MSSQL' 카테고리의 다른 글

[MSSQL] 날짜(date) 관련 함수  (26) 2024.02.15
[MSSQL] Union  (32) 2024.02.13
[MSSQL] With 문  (39) 2024.02.08
[MSSQL] Pivot  (36) 2024.02.08
MSSQL - SSMS 활용하여 데이터 메일로 받기  (0) 2023.12.30