본문 바로가기

데이터베이스(DB)/Oracle
[Oracle] Pseudo

// pseudo, 의사컬럼
  - 실제 컬럼이 아닌데 컬럼처럼 행동하는 요소


// rownum

- 오라클 전용

- 행번호 > 레코드의 일련번호

- from절이 실행될 때 각 레코드에 일련번호를 할당한다.★★★★

- where절의 영향을 받으면 일련번호를 다시 정비한다.(reindexing) ★★★
      ~ where rownum = 5 > null값 반환... > 반드시 1~ 조건의 범위로 사용해야 한다.

- order by 전에 rownum이 매겨지기 때문에 order by를 할 경우 rownum이 뒤죽박죽 섞인다.  > 서브쿼리 사용해야 함..
     ~ select name, buseo, basicpay, rownum from (select name, buseo, basicpay, rownum from tblInsa order by basicpay desc);   

- 서브 쿼리를 자주 사용한다.
  
- order by와 where 후 rownum 사용하는 방법 

1. 정렬           

SELECT * FROM tblcomedian ORDER BY weight DESC;


2. 서브쿼리 > rownum 별칭

SELECT a.*, ROWNUM AS rnum FROM(SELECT * FROM tblcomedian ORDER BY weight DESC) a;

     
3. 서브쿼리 > rownum 고정시키기 위해서           

SELECT * FROM (SELECT a.*, ROWNUM AS rnum FROM(SELECT * FROM tblcomedian ORDER BY weight DESC) a)
	WHERE rnum = 5;

'데이터베이스(DB) > Oracle' 카테고리의 다른 글

[Oracle] 데이터베이스 설계  (0) 2023.03.23
[Oracle] 계층형 쿼리  (0) 2023.03.23
[Oracle]식별자  (0) 2023.03.20
[Oracle] 시퀀스(Sequence)  (0) 2023.02.22
[Oracle] 제약사항  (0) 2023.02.22