본문 바로가기

SQL/sqlplus

ORACLE(행 읽기 - 정렬과 페이징)

출력된 정렬 상태를 바꾸고 출력되는 행의 개수를 바꾸는 방법

 

 

1. 정렬을 하는 방법

SELECT * FROM topic ORDER BY id DESC;

DESC

DESC -> 큰 숫자가 먼저 나오게한다. (내림차순) - 알파벳도 동일

 

ASC

ASC -> 작은 숫자부터 나오게한다. (오름차순) - 알파벳도 동일


SELET * (all)은 실무에서는 절대 사용 X) 

-> 어마어마한 데이터를 다 끌어오게 되는 것

-> 즉. 업무가 마비가 된다.

 

 

그러면 어떻게 해야하나?

 

우리가 원하는 행만 가져오는 테크닉을 알고 있어야지만

데이터베이스에 부담을 주지 않을 수 있다.

 

이런 걸 " 페이지 기법" 라고 한다.

 

<ver.12 이전 버전>

만약, 계속 에러가 난다면 아래와 같이 쓰여야한다.(버전 문제)

 

[Top-N query]

 

: 일반적으로 페이징(Pagination)처리를 효과적으로 수행하기 위해 활용하거나

  전체 결과 집합에서 특정 부분을 추출하기 위해 활용한다.

SELECT * FROM topic WHERE rownum <= 1;

<ver. 12>

SELECT * FROM topic
      OFFSET 1 ROWS;

0번째 이후에 나오는 행들을 가져오겠다.

[컴퓨터의 숫자 카운트는 0부터 시작되기때문에 1번 뒤의 내용들이 나온다.]


 

SELECT * FROM topic 
         OFFSET 0 ROWS 
         FETCH NEXT 1 ROWS ONLY;

 

0번째 이후의 하나만 가져오겠다.

 

 


FETCH NEXT 1 ROW ONLY

 

하나의 페이지가 몇개의 행을 가질까라는것을 의미하고

 

OFFSET 

 

몇번째 페이지인가를 의미하게 만들어 줄 수 있다.

 

 

< 12버전에서만 사용가능. 조금 더 검색이 필요!>

 

 

 

'SQL > sqlplus' 카테고리의 다른 글

ORACLE(행 삭제)  (0) 2021.04.02
ORACLE(행 수정)  (0) 2021.04.02
ORACLE(행 읽기 - 행과 컬럼 제한하기)  (0) 2021.04.02
ORACLE(행 읽기)  (0) 2021.04.02
ORACLE(행 추가)  (0) 2021.04.01