728x90
오라클에서는 RNUM()을 통해 쉽게 순번에 맞는 행 번호를 출력할 수 있었다.
이번에 JSP로 프로젝트를 진행하면서 MariaDB를 사요하게 되었고 MariaDB에서도 행 번호를 출력할 수 있는 방법에 대해 정리해본다.
MariaDB에서는 ROW_NUMBER() OVER() 함수를 사용하면 된다.
OVER 안에는 PARTITION BY와 OREDER BY를 사용할 수 있다.
- PARTITION BY : 결과 집합을 분할하는 데 사용하는 열을 지정한다. PARTITION BY를 지정하지 않으면 모든 행이 단일 그룹으로 취급된다.
- ORDER BY : 지정된 파티션 내에서 각 행의 고유 ROW_NUMBER가 할당되는 순서를 결정한다.
예제
SELECT
ROW_NUMBER() OVER(ORDER BY name ASC) AS row_num,
name, sex
FROM member
WHERE member_id < 5;
row_num | name | sex |
1 | 김찬빈 | MALE |
2 | 나찬빈 | FEMALE |
3 | 동찬빈 | FEMALE |
4 | 지찬빈 | FEMALE |
SELECT
ROW_NUMBER() OVER(ORDER BY name DESC) AS row_num,
name, sex
FROM member
WHERE member_id < 5;
row_num | name | sex |
4 | 김찬빈 | MALE |
3 | 나찬빈 | FEMALE |
2 | 동찬빈 | FEMALE |
1 | 지찬빈 | FEMALE |
SELECT
ROW_NUMBER() OVER(PRTITION BY sex ORDER BY name ASC) AS row_num,
name, sex
FROM member
WHERE member_id < 5;
row_num | name | sex |
1 | 김찬빈 | MALE |
1 | 나찬빈 | FEMALE |
2 | 동찬빈 | FEMALE |
3 | 지찬빈 | FEMALE |
참조
https://learn.microsoft.com/ko-kr/sql/t-sql/functions/row-number-transact-sql?view=sql-server-2017
728x90
'SQL' 카테고리의 다른 글
MySQL - Incorrect coloumn specifier for column 에러 원인과 해결방법 (2) | 2023.11.01 |
---|---|
Oracle - 다중 Like (Like In) (0) | 2023.10.24 |
Oracle - 줄바꿈(개행) 제거 (2) | 2023.08.16 |
DB - DB View에 대해서 알아보자 (0) | 2023.08.10 |
Oracle - LISTAGG (여러 컬럼을 하나의 컬럼으로 가져오기) (0) | 2023.07.24 |