SQL
오라클 데이터베이스 SQL(4) - ROWNUM / DISTINCT
김랑해
2023. 7. 28. 14:56
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;