관리 메뉴

웹개발자의 기지개

[MS-SQL] ROW_NUMBER() Over() 이용하기 - 페이징시 유용함 본문

SQL/MS-SQL

[MS-SQL] ROW_NUMBER() Over() 이용하기 - 페이징시 유용함

http://portfolio.wonpaper.net 2024. 3. 12. 20:26

오라클에서 ROW_NUMBER() 를 이용하는 것을 MS-SQL 에서도 이용할 수 있다.

 

with 문으로 일련의 가상 테이블을 만들고, row_num 으로 페이징 처리한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
WITH cte_customers AS (
    SELECT ROW_NUMBER() OVER(
             ORDER BY 
                first_name, 
                last_name
           ) row_num, 
           customer_id, 
           first_name, 
           last_name
     FROM sales.customers
SELECT customer_id, 
         first_name, 
         last_name
    FROM cte_customers
   WHERE row_num > 20 
     AND row_num <= 30;
cs

 

 

 

아주 쉽게 잘 설명해주는 포스팅 글이 있다. 아래 링크를 참조 하면 더욱 좋을것 같다.

 

https://developjuns.tistory.com/42

 

[MSSQL] 윈도우 함수 ROW_NUMBER() 순차번호 할당

SQL를 다루다 보면 행별로 순차적인 번호를 부여해야 할 상황이 1번쯤은 온다. RANK()를 활용할 수는 있겠지만, RANK()함수는 번호의 기준이 되는 ORDER BY 절의 데이터가 동일하다면 같은 번호로 할당

developjuns.tistory.com

 

 

참고 : https://developjuns.tistory.com/42

참고 : https://dorongdogfoot.tistory.com/25

 

Comments