Database/MSSQL

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

BeomBe 2023. 12. 29. 19:30
반응형

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
반응형