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