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