본문 바로가기
SQL

오라클 데이터베이스 SQL(4) - ROWNUM / DISTINCT

by 김랑해 2023. 7. 28.

ROWNUM 과 행 제한하기

여기 ID 왼쪽에 테이블마다 자동으로 생성되는 게 ROWNUM임

다만 이 ROWNUM의 경우 테이블에 고정되는 것이 아니라 유동적으로 바뀌는 것임!

그러니까 만약 2행을 지웠다고 ROWNUM이 1,3,4,5 이렇게 되는 게 아니라 다시 1,2,3,4로 새롭게 라벨링이 된다는 것 (아닐수도ㅋㅋ)

 

그렇기 때문에 SELECT*FROM MEMBER WHERE ROWNUM BETWEEN 6 AND 10 이라는 함수는 실행될 수가 없다

 

해결방법 : 기본 테이블에 ROWNUM을 합쳐주고 -> 추출

 

SELECT*FROM(SELECT ROWNUM NUM, MEMBER.* FROM MEMBER)
WHERE NUM BETWEEN 1 AND 5

ROWNUM과 MEMBER테이블을 합쳐주고 거기서 NUM(ROWNUM의 새로운 열이름) 1-5 추출함

원래 열을 추출할 때 MEMBER.학번(멤버 테이블의 학번열을 추출한다) 인데 테이블이 하나면 MEMBER.을 생략할 수 있음

MEMBER.*은 멤버 테이블의 모든열을 전부 추출하겠다는 의미

 

 

중복 값 제거 DISTINT

회원들의 나이가 궁금하다 다만 중복되는 나이가 있다면 하나만 출력할 것

SELECT DISTINCT AGE FROM MEMBER;